[英]How to Seed a table with Index Unique Data Annotation based on 2 columns with one nullable
[英]Data Annotation table columns
public partial class Employee
{
public int Emp_Id { get; set; }
public string Emp_Name { get; set; }
public string Emp_City { get; set; }
public Nullable<int> Emp_Age { get; set; }
}
這是使用EF為表Employee
生成的類。 我希望在應用程序Emp_Name
更改為EmpName
而不更改表結構。 但是使用下面的更改,使用數據注釋dbEntity.Set<Employee>().ToList();
得到例外
“實體類型Employee不是當前上下文模型的一部分。”
System.InvalidOperationException。
怎么解決這個
public partial class Employee
{
public int Emp_Id { get; set; }
[Column("Emp_Name")]
public string EmpName { get; set; }
public string Emp_City { get; set; }
public Nullable<int> Emp_Age { get; set; }
}
您不需要更改列的名稱。 您可以像這樣輕松使用[Display]
或[DisplayName]
屬性:
using System.ComponentModel.DataAnnotations;
添加using System.ComponentModel.DataAnnotations;
首先使用您的using指令:
[Display(Name = "EmpName")]
public string Emp_Name { get; set; }
要么:
[DisplayName("EmpName")]
public string Emp_Name { get; set; }
的含義:
實體類型
Employee
不是當前上下文模型的一部分。
例外是dbcontext
不知道您需要向dbContext
注冊的Employee
類型
public class MyDbContext : DbContext
{
public DbSet<Employee> Employees {get; set;}
}
MyDbContext
是你dbContext
類,你需要定義dbset
類型的employee
在覆蓋OnModelCreating
的方法DbContext
在你的context
象下面這樣:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Employee>().ToTable("Employee");
}
看來您正在使用數據庫優先方法。 執行以下操作以更改屬性名稱,而不更改列名稱:
.edmx
文件,它將顯示表格。 right click the column name > Rename
它將保留該名稱,並且如果您更新EDMX,它將仍然保留該名稱。 但是,如果刪除EDMX並重新生成它,則需要再次進行重命名。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.