entity-framework - Poco+Entity Framework 4. 我应该在哪里添加使用 Poco 类的方法?

标签 entity-framework entity-framework-4 model poco partial-classes

我已尝试将 Entity Framework 4 和 POCO 用于我的 MVC 3 项目。可能是,我不明白这个ORM的主要思想,但问题如下:

  1. 我添加了 ADO .NET 实体数据模型并根据数据库制作模型。
  2. 我点击了添加代码生成项并添加了 ADO .NET POCO 实体生成器。
  3. 它为每个数据库表创建类。
  4. 我想添加一些方法来处理数据(添加、更新、删除、GetAll 等)到适当的模型。 对于 LINQTOSQL,我添加了部分类并将它们放置到模型中。但现在我不能这样做,因为:

a) Models 文件夹中有同名的类,由 POCO 创建。

b) 如果我将部分类放在另一个文件夹中,它将是另一个命名空间 - 因此,这样的类将不是部分类。

c) 如果我将我的代码放在 POCO 类中,它可能会在更新 POCO 期间被销毁。

我该如何使用它?我应该把我的数据工作方法放在哪里? 是为 POCO 和 EF 制作其他项目的最佳方式 - http://blogs.msdn.com/b/adonet/archive/2010/01/25/walkthrough-poco-template-for-the-entity-framework.aspx

最佳答案

首先,您不必在 POCO 中编写 CRUD, 有很多地方你可以像在 edmx.cs 文件中那样做,或者再写一层,称为 CRUD 服务,它使用上下文对象处理数据库操作。

现在回答你的问题,

  1. 创建单独的模型文件夹并将模型类放在其中。 您的模型类可能会喜欢这样,

    EmployeeDepartmentModel
    {
     prop EmpList List(Emp);
     prop DeptList List(Dept);
     //Emp and Dept are my POCOs
    }
    
  2. 所以现在我必须填写这两个列表(您的 CRUD 问题), 为此,我将在 Controller 类中创建一个方法(最好在其他库中编写此类逻辑,但暂时我建议您在 Controller 中创建),

    FillTheModel()
    {
      EmployeeDepartmentModel.EmpList = EDMX.GetAllEmployees;
      EmployeeDepartmentModel.DeptList = EDMX.GetAllDepartments;
    }
    
  3. 现在您可以将此模型与您的 View 绑定(bind)。

关于entity-framework - Poco+Entity Framework 4. 我应该在哪里添加使用 Poco 类的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5599713/

相关文章:

asp.net-mvc-3 - 修改 StringLength 验证的默认 ErrorMessage

Cakephp find ('all' )仅返回一行

Django,多表继承有那么糟糕吗?

c# - Linq-To-Entities 使用方法选择新对象

c# - 如何在 Entity Framework 中使用linq返回这个结果(2个外键映射表)

sql - 对象 'DF__*' 依赖于列 '*' - 将 int 更改为 double

ruby-on-rails - 如何针对组合字段的唯一性对这种复杂的验证进行建模

c# - 在主表中创建具有重命名字段和非主键的实体关系

c# - 检查针对 SQL Server 数据库的 LINQ 查询

c# - 其中一个主键值的类型与实体中定义的类型不匹配。有关详细信息,请参见内部异常