我想创建像wrapper或mayby这样的东西,更好的单词将是在EntityFramework模型类中生成的“Extension”......
我有模型USER,有密码,用户名等...而且用户与其他一些对象有多对多关系......无论如何......
我想创建这样的东西:
class ExtendedUser : USER {
public void AddObject(Object o) {}
}
但我不知道,这是个好主意...... 我不知道如何创建构造函数。我想做这样的事情。
User u = ...;
ExtendedUser eu = u as ExtendedUser;
概念我想从数据库中获取数据并将其放入ExtendedUser实例中,因为此对象将具有操作此数据的方法...
怎么做?
答案 0 :(得分:7)
我相信实体框架生成的类是部分类,所以你可以在同一个命名空间中创建另一个具有相同名称的部分类,你应该看到你在用户类上添加的任何额外方法,例如:
partial class User
{
//Generated code
}
partial class User
{
public void MyMethod();
}
User u = new User();
u.MyMethod();
答案 1 :(得分:0)
如果你只是想扩展方法,那就足够了。但是,如果您还想向模型添加元数据(如数据注释等),则此方法不起作用。
实际上,您只能将方法添加到自动生成的类中。
我回答了有关向自动生成的实体类here添加和保留数据注释的问题。