【问题标题】:Entity Framework 4.1 and practical use in an existing applicationEntity Framework 4.1 和在现有应用程序中的实际使用
【发布时间】: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


【解决方案1】:

asp.net 网站上有一个非常简洁的教程,可以帮助您使用 EF 4.1 Code-first 或 POCO 启动和运行。这是MVC Music Store,它将帮助您在一天之内了解所有内容。

使用 EF、存储库和测试详细构建应用程序。您可以阅读史蒂文·桑德森(Steven Sanderson)名为PRO Asp.net MVC3 的这本书

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多