Так как типы сущностей различны, ваша операция добавления наверняка упадет.
Вам понадобится маппер или (явный / неявный) оператор преобразования между вашими типами сущностей, я думаю.
Для ясности, для решения беседы предположим, что у вас есть Entity1
и Entity2
, и оба имеют свойства Property
, Property_1
, Property_2
и Property_3
. Я предполагаю, что у вас есть стратегия генерации кода по умолчанию (не POCO или sth). Затем вы можете добавить частичные классы Entity2 и Entity1 с оператором неявного преобразования, например:
public partial class Entity2
{
public static implicit operator Entity2(Entity1 entity1)
{
return new Entity2()
{
Property = entity1.Property,
Property_1 = entity1.Property_1,
Property_2 = entity1.Property_2,
Property_3 = entity1.Property_3
};
}
}
Так что теперь вы можете сделать:
using (var provider = new Model1Container12())
{
Entity1 entity1 = new Entity1();
provider.AddObject(provider.Entity2Set.Name, entity1);
// or
provider.AddToEntity2Set(entity1);
}
Преобразование будет выполнено неявно, как вы определите в определении оператора преобразования.
Я не знаю, есть ли у Entity Framework решение для этой ситуации, но преобразование кажется мне решением. Или вы также можете использовать AutoMapper . У меня нет подробной информации об этом.