我有表 BookComments 和 FileComments 。我有实体类 BookComment 和 FileComment 。
当我获得数据时,一切都很好。但是当我尝试添加数据时,我收到错误。找不到 BooksComments 表或 FilesComments 。我尝试使用TableAttribute类,但没有帮助我。
我使用Entity Framework 6.1.3
更新
如果我将表格名称从 BookComments 重命名为 BooksComment 。我无法获取数据并收到错误
无效的对象名称dbo.BookComments
添加实体
public void AddEntity(T entity)
{
this.Entities.Add(entity);
}
protected IDbSet<T> Entities
{
get
{
return this._entities ?? (this._entities = this._context.Set<T>());
}
添加评论书籍控制器类
public async Task<JsonResult> AddComment(int id, Comment comment)
{
try
{
CommentItem addComment = await Task.Run(() =>
{
var newcomment = this._booksService.AddComment(id, comment);
return AutoMapManager.GetMap<CommentItem, IComment>(newcomment);
});
return this.Json(new { Result = true, comment = addComment }, JsonRequestBehavior.AllowGet);
}
catch (Exception e)
{
return this.Json(new { Result = false, e.GetBaseException().Message }, JsonRequestBehavior.AllowGet);
}
}
}
BookService类
public IComment AddComment<T>(int bookId, T item) where T : new()
{
var comment = AutoMapManager.GetMap<BookComment, T>(item);
comment.BookId = bookId;
this._commentRepository.AddEntity(comment);
this._commentRepository.SaveChanges();
return comment;
}
答案 0 :(得分:0)
检查以确保SQL中的表名与模型具有相同的区分大小写。实体框架使用SQL(通常不区分大小写)进行查询...这就是您可以检索数据的原因。但是当你添加行时,EF正在使用CLR(区分大小写)来查找表实体。先看看这是不是你的问题。