我已经创建了用于在数据库中配置具有适当名称“ 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字符串的任何字符串!!!
如何解决此问题?
原因-使用2种不同的方法来配置EF-数据注释属性和Fluent API。只需删除Table
属性并在Fluent API中添加该属性即可:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<MyTableInfo>().ToTable("MyTableInfo");