我正在实施Entity Framework Code-First方法,在我的项目中遇到了问题。
错误详情:18,12) : error 2019: 指定的成员映射无效。在类型为'IMS.DAL.Users_mast'的成员'status'的类型为'Edm.Byte[Nullable=False,DefaultValue=]'与在类型为'CodeFirstDatabaseSchema.Users_mast'的成员'status'的类型为'SqlServer.binary[Nullable=False,DefaultValue=,MaxLength=8000,FixedLength=True]'不兼容。
我的代码: User_mast.cs文件包含:
最后,
错误详情:18,12) : error 2019: 指定的成员映射无效。在类型为'IMS.DAL.Users_mast'的成员'status'的类型为'Edm.Byte[Nullable=False,DefaultValue=]'与在类型为'CodeFirstDatabaseSchema.Users_mast'的成员'status'的类型为'SqlServer.binary[Nullable=False,DefaultValue=,MaxLength=8000,FixedLength=True]'不兼容。
我的代码: User_mast.cs文件包含:
[Column(TypeName = "binary")]
public byte status { get; set; } // Active | Inactive (1 | 0 ), where I want status column to be created as binary column in sql server.
public class context : DbContext
{
public context()
: base("name=sqlConn")
{
}
public DbSet<Users_mast> Users { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
}
}
最后,
context obj = new context();
public void add()
{
obj.Users.Add(new Users_mast() {user_fname="Agnib", user_lname="Pyne", user_email="a@gmail.com", user_mobile="9830972301", username="agnib", pwd="As1232", created_date=DateTime.Now, status=1 });
obj.SaveChanges();
}
运行时,我遇到了上述错误。我理解这是由于状态字段被设置为byte,但未被映射为二进制所致。
那么,我该怎么样才能将sql server中的列设置为二进制呢?在EF Code-First中,是否有SQL Server类型和.NET类型之间的映射列表?
感谢任何帮助。请帮帮我!!!