我目前正在考虑从流畅的 nHibernate 迁移到 ADO.Net Entity Framework 4。
我有一个包含用于 nHibernate 映射的域模型 (pocos) 的项目。我在博客中读到可以将我现有的域模型与 EF4 一起使用,但我没有看到它的例子。我见过使用 EF4 生成 T4 代码的示例,但还没有遇到一个示例,该示例展示了如何将现有域模型对象与 EF4 一起使用。我是 EF4 的新手,希望看到一些关于如何完成这项工作的示例。
谢谢
艾亚兹
最佳答案
快速演练:
ObjectContext
的类来公开实体(通常与 .edmx 文件在同一个项目中)ObjectSet<TEntity>
类型的属性 示例代码:
public class SalesContext : ObjectContext
{
public SalesContext(string connectionString, string defaultContainerName)
: base(connectionString, defaultContainerName)
{
this.Customers = CreateObjectSet<Customer>();
this.Products = CreateObjectSet<Product>();
this.Orders = CreateObjectSet<Order>();
this.OrderDetails = CreateObjectSet<OrderDetail>();
}
public ObjectSet<Customer> Customers { get; private set; }
public ObjectSet<Product> Products { get; private set; }
public ObjectSet<Order> Orders { get; private set; }
public ObjectSet<OrderDetail> OrderDetails { get; private set; }
}
就是这样...
重要通知: 如果您使用自动代理创建进行更改跟踪(
ContextOptions.ProxyCreationEnabled
,默认情况下为 true ),您的域类 的属性必须是虚拟的 。这是必要的,因为 EF 4.0 生成的代理将覆盖它们以实现更改跟踪。如果您不想使用自动代理创建,则需要自己处理更改跟踪。详见 this MSDN page
关于entity-framework - 具有现有域模型的 Entity Framework 4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3002179/