数据注释表列

时间:2017-06-07 04:38:40

标签: c# asp.net-mvc asp.net-mvc-4 entity-framework-6

<asp:RadioButton ID="submitter" runat="server" GroupName="rd2" OnCheckedChanged="submitter_CheckedChanged" Text="Submitter" AutoPostBack="true" />
                        &nbsp;&nbsp;
        <asp:RadioButton ID="following" runat="server" ForeColor="Black" Text="Following" GroupName="rd2" OnCheckedChanged="following_CheckedChanged" AutoPostBack="true" />

这是使用EF为表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; } } 生成的类。我希望Employee在应用程序中更改为Emp_Name而不更改表结构。但是使用下面的更改使用数据注释EmpName获取异常

  

“实体类型Employee不是当前模型的一部分   上下文中,“

     

System.InvalidOperationException。

如何解决这个问题

dbEntity.Set<Employee>().ToList();

3 个答案:

答案 0 :(得分:0)

您无需更改列的名称。您可以轻松使用[Display][DisplayName]属性,如下所示:

首先将using System.ComponentModel.DataAnnotations;添加到您的using指令中:

[Display(Name = "EmpName")]
public string Emp_Name { get; set; }

或者:

[DisplayName("EmpName")]
public string Emp_Name { get; set; }

答案 1 :(得分:0)

意思是:

  

实体类型Employee不是当前模型的一部分   上下文。

例外情况是dbcontext不知道您需要Employee

注册dbContext类型
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中提到的DisplayName private void dataGridView1_CurrentCellChanged(object sender, EventArgs e) { if (dataGridView1.CurrentRow != null && dataGridView1.CurrentRow.Index > -1) { string value1 = dataGridView1.CurrentRow.Cells[0].Value != null ? dataGridView1.CurrentRow.Cells[0].Value.ToString() : ""; textBox1.Text = value1; string value2 = dataGridView1.CurrentRow.Cells[1].Value != null ? dataGridView1.CurrentRow.Cells[1].Value.ToString() : ""; textBox2.Text = value2; . . . } } 作为S.Akbari

答案 2 :(得分:0)

您似乎正在使用Database First方法。执行以下操作以更改属性名称而不更改列名称:

  1. 只需双击.edmx文件即可显示表格。
  2. 找到您的表格right click the column name > Rename
  3. 为您选择一个新名称
  4. 它将保留此名称,如果您更新EDMX,它仍会保留它。但是,如果删除EDMX并重新生成它,则需要再次重命名。