簡體   English   中英

數據注釋表列

[英]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");
}

如果要為顯示器用途更改名稱,那么你可以使用Display或者DisplayNameS.Akbari在他提到的答案

看來您正在使用數據庫優先方法。 執行以下操作以更改屬性名稱,而不更改列名稱:

  1. 只需雙擊您的.edmx文件,它將顯示表格。
  2. 查找表, right click the column name > Rename
  3. 給它起一個新的名字

它將保留該名稱,並且如果您更新EDMX,它將仍然保留該名稱。 但是,如果刪除EDMX並重新生成它,則需要再次進行重命名。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM