我有以下用户类:
public class CustomUser : User, IUser<int> {...}
public interface IUser<TKey> {...}
类User
是从我的edmx(数据库到模型方法)生成的部分类。
我正在尝试向数据库添加新用户,但我收到错误:“无法找到EntityType”MyNamespace.CustomUser“的映射和元数据信息。
他添加新用户的代码:
public void CreateUser(CustomUser user)
{
User newUser = (User)user;
this.MyEntities.Users.Add(newUser); <-- Line that error blows
this.MyEntities.SaveChanges();
}
为什么在演员表之后,newUser
保持为CustomUser
?
答案 0 :(得分:2)
newUser
是User
类型的变量,但它指向内存中的原始CustomUser
。
如果您运行newUser.GetType()
,您将获得CustomUser
。
要解决此问题,您需要创建一个user类型的新对象,并复制其所有属性。您可以使用AutoMapper或ValueInjecter自动创建,也可以手动执行。
另一个解决方案是在EF模型中配置CustomUser
,以便它按预期工作。您没有指定如何定义EF模型。