System.Data.SqlClient.SqlException:EF-中无效的对象名称,但在表属性中设置了适当的名称

问题描述 投票:0回答:1

我已经创建了用于在数据库中配置具有适当名称“ MyTableInfo”的对应表名称的类:

 using System.ComponentModel.DataAnnotations.Schema;

 [Table("MyTableInfo" , Schema = "dbo")]
 public class MyTableInfo {

    [DatabaseGenerated(DatabaseGeneratedOption.None)]
    public int Id { get; set; }

并且我在模型类中使用Fluent API来添加一些约束:

        protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {

        modelBuilder.Entity<EquifaxAnswers>()
            .HasMany(e => e.MyTableInfo)
            .WithRequired(e => e.Answers)
            .HasForeignKey(e => e.AnswersId)
            .WillCascadeOnDelete(false);

但是当我尝试从表中获取数据时,出现异常:

System.Data.SqlClient.SqlException: Invalid object name 'dbo.MyTableInfoes'

-但是我的源文件中甚至没有包含MyTableInfoes字符串的任何字符串!!!

如何解决此问题?

c# entity-framework linq data-annotations ef-fluent-api
1个回答
0
投票

原因-使用2种不同的方法来配置EF-数据注释属性和Fluent API。只需删除Table属性并在Fluent API中添加该属性即可:

        protected override void OnModelCreating(DbModelBuilder modelBuilder)
       {
        modelBuilder.Entity<MyTableInfo>().ToTable("MyTableInfo");
© www.soinside.com 2019 - 2024. All rights reserved.