【问题标题】:Extending an entity framework 6 class扩展实体框架6类
【发布时间】:2014-05-12 09:21:04
【问题描述】:

我有一个名为 Person.cs 的实体框架生成的类,它位于命名空间 Project.Model 中。

然后我在项目中添加了一个名为 Extensions 的新文件夹,在其中添加了 Person.cs 并将该文件的命名空间设置为 Project.Model。

执行此操作后,我收到错误:

类型“Project.Model.Person”已经定义了一个名为“Person”的成员 具有相同的参数类型。

我做错了什么?我需要扩展 EF Person.cs 以获得其他属性。

这是我的扩展 Person.cs 的代码。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Project.Model
{
    public partial class Person
    {
        public Person()
        {

        }
    }
}

【问题讨论】:

    标签: c# entity-framework entity-framework-6 partial-classes


    【解决方案1】:

    您应该从Person 类中删除默认构造函数:

    public partial class Person
    {
        // add properties here
    }
    

    您的分部类是同一类的一部分,因此与任何其他类定义一样 - 任何成员都不能定义两次,包括构造函数。如果你去 EF 生成的Person 类,你会看到它已经有了默认构造函数(EF 用它来初始化导航属性)。

    【讨论】:

    • 这是放置这些扩展的好地方吗?还是应该在业务层创建领域模型并使用 automapper 在它们之间进行映射?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-06
    • 2014-12-11
    • 2017-03-12
    相关资源
    最近更新 更多