Поскольку типы сущностей различны, ваша операция добавления будет падать точно.
Вам понадобится оператор преобразования или (явный/неявный) оператор преобразования между типами сущностей, которые я думаю.
Для того, чтобы понять, для решения разговор, предположим, что у вас есть Entity1
и Entity2
, и оба имеют свойства, Property
, Property_1
, Property_2
и Property_3
. Я предполагаю, что у вас есть стратегия генерации кода по умолчанию (не POCO или sth). Затем вы можете добавить частичные классы entity2 и entity1 с неявным operatior преобразования, например:
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. У меня нет подробной информации об этом.
означает, что я должен создать отдельные экземпляры сущностей для каждого из них? ни один объект не может быть повторно использован для добавления другого объекта в таблицу базы данных? Просьба уточнить. – Aaron
Я думаю, вам нужно создать экземпляр типа, который вы хотите добавить в контекст вашего объекта. Я обновил свой ответ. Надеюсь быть полезным. Пожалуйста, сообщите, если ответ не ясен или я неправильно понимаю ситуацию. –