2014-05-12 156 views
3

我有一个Entity Framework生成的名为Person.cs的类,位于名称空间Project.Model中。扩展一个实体框架6类

然后我在项目中放入了一个名为Extensions的新文件夹,在里面添加了Person.cs,并将此文件的名称空间设置为Project.Model。

这样做后,我得到的错误:

Type 'Project.Model.Person' already defines a member called 'Person' with the same parameter types.

我在做什么错?我需要扩展EF Person.cs以具有其他属性。

这是我扩展Person.cs的代码。 - 没有成员可以被定义两次,包括

public partial class Person 
{ 
    // add properties here 
} 

你的部分类是同一类的一部分,以便与任何其他类的定义:

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() 
     { 

     } 
    } 
} 

回答

4

你应该从Person类中删除默认的构造函数构造函数。如果您将访问EF生成的Person类,您将会看到它已经具有默认构造函数(EF将其用于导航属性初始化)。

+1

这是一个放置这些扩展的好地方吗?或者我应该在业务层中创建域模型并使用automapper在它们之间进行映射? – Chazt3n