添加实体时具有表名的实体框架错误

时间:2015-05-15 19:12:20

标签: c# entity-framework-6

我有表 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;
    }

1 个答案:

答案 0 :(得分:0)

检查以确保SQL中的表名与模型具有相同的区分大小写。实体框架使用SQL(通常不区分大小写)进行查询...这就是您可以检索数据的原因。但是当你添加行时,EF正在使用CLR(区分大小写)来查找表实体。先看看这是不是你的问题。

相关问题