Здравствуйте, Styk, Вы писали:
S>Здравствуйте, Аноним, Вы писали:
А>>Единственная проблема как мне кажется, что в таком случае нельзя SQL запросы юзать, а очень бы хотелось
А>>Мне скорее всего даже не как сами объекты, а их пропертя надо сохранять в таблички. Вот правда встает тогда вопрос, как быть со связями объектов ( как минимум агрегация и наследование, уже не говоря о более сложных
)
S>Что-то твоя задача на "сериализацию" не совсем похожа....
Ну скажем так для примера... Есть например 2 таблички
Address
Address_ID
City
Add_Str
Person
Person_ID
Address_ID
Name
Есть 2 класса
[DataTable("PERSON")]
public class TPerson : DALSqlEngine
{
private object m_PersonID;
private object m_AddressID;
private string m_FirstName;
private string m_LastName;
private string m_MiddleName;
// Skip
private TAddress m_Address;
public TPerson(string strConnection) : base(strConnection)
{
}
[KeyField("PERSON_ID")]
public object ObjectID
{
get { return m_PersonID; }
set { m_PersonID = value; }
}
[DataField("ADDRESS_ID")]
public object AddressID
{
get { return TUtils.SetObjectValue(m_AddressID); }
set { m_AddressID = value; }
}
[DataField("FIRST_NAME", Size=50)]
public string FirstName
{
get { return TUtils.SetStringValue(m_FirstName); }
set { m_FirstName = value; }
}
[DataField("LAST_NAME", Size=50)]
public string LastName
{
get { return TUtils.SetStringValue(m_LastName); }
set { m_LastName = value; }
}
[DataField("MIDDLE_NAME", Size=50)]
public string MiddleName
{
get { return TUtils.SetStringValue(m_MiddleName); }
set { m_MiddleName = value; }
}
[DataField("DOB")]
public object Birhtday
{
get { return TUtils.SetObjectValue(m_Birhtday); }
set { m_Birhtday = value; }
}
[DataField("SEX")]
public object Sex
{
get { return TUtils.SetObjectValue(m_Sex); }
set { m_Sex = value; }
}
// Skip
public TAddress Address
{
get
{
if(m_Address == null)
{
m_Address = new TAddress(connectionString);
m_Address.GetObject = AddressID;
}
return m_Address;
}
set
{
m_Address = value;
}
}
}
TAddress : DALSqlEngine
{
}
// получить объект
TPerson Person = new TPerson(m_strConn);
Person.GetObject = 4;
textBox1.Text = Person.FirstName + " " + Person.LastName + "\n\r";
textBox1.Text += Person.Address.Address;
// Хотелось бы...
TPerson Person = new TPerson(m_strConn);
TAddress Address = new TAddress(m_strConn)
Person.Address = Address;
Person.Save();
// И в базе создается записи в табличках Person & Address
// Сохранить отдельно Person и Address я умею, но вот когда один объект агрегирует другой
// или наследование там... :xz: