【发布时间】:2011-11-11 09:10:45
【问题描述】:
我看过很多关于 EF 的视频,但我仍然找不到在我的项目中使用此工具的正确方法。 到处都在谈论两种情况,首先你有一个数据库但没有域模型,其次你有 DM 并且没有数据库。
我有一个已经启动并运行的应用程序,其中包含定义良好的 DM 和 DB。我定义了存储库接口,并使用简单的 SQL 查询对该存储库进行了具体实现。
现在,我已经厌倦了这种古老的方法,我想开始使用 EF。
但是我找不到通过 EF 开始实施具体存储库的方法。
你能建议我一个合适的方法吗?
这是我目前情况的一个例子:
类的部分摘录
public class Order : IAggregateRoot
{
protected Order()
{
this._Items = new List<OrderItem>();
this.Date = null; ;
}
/// <summary>
/// Creates an order for a given customer
/// </summary>
/// <param name="customer">The customer</param>
/// <returns>An order</returns>
public static Order CreateOrder(Customer customer)
{
Contract.Requires<ArgumentNullException>(customer != null, "customer");
Order order = new Order();
order.Customer = customer;
return order;
}
/// <summary>
/// Gets or sets the ship name
/// </summary>
[StringLengthValidator(40)]
public virtual string ShipName { get; set; }
订单仓库界面
/// <summary>
/// Represents the repository of objects of type Order
/// </summary>
public interface IOrderRepository : IRepository<Order>
{
}
存储所有这些的数据库表有一个奇怪的命名约定(荷兰语),称为 ordenen,列具有特定名称等。
现在如何通过 EF 实现存储库?
欢迎提出任何建议!
干杯!
【问题讨论】:
-
最好从一些测试或 POC 应用程序开始以了解 EF 的基础知识,因为此时您似乎在询问如何实现存储库,但您不知道如何实现映射工作,这只是我们无法在单一答案中解释的事情。从一些教程开始。
-
你能给我推荐一个好的教程或文章吗?我需要将现有的 DM 映射到现有的数据库,但我还没有找到任何解释如何处理这种情况的视频。谢谢
-
您打算使用代码映射还是 EDMX 文件?顺便提一句。当你同时拥有类和数据库时,你可以在 EF 根本无法进行映射的情况下结束。
标签: c# .net entity-framework ddd-repositories