【发布时间】:2015-05-17 04:51:18
【问题描述】:
我有表 BookComments 和 FileComments。我有实体类 BookComment 和 FileComment。
当我得到数据时,一切都很好。但是当我尝试添加数据时,我得到了错误。找不到 BooksComments 表或 FilesComments。我尝试使用 TableAttribute 类但没有帮助我。
我使用实体框架 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;
}
【问题讨论】:
-
Arw 有 2 个拼写错误,或者错误是否真的是 BooksComments 和 FilesComments?如果是这样,问题就很明显了。就像你说的,你的表是 BookComments(不是 BooksComments)和 FileCommemts(不是 FilesComments)。请参阅我在 EF 中命名表的问题:stackoverflow.com/questions/30101272/…
-
我如何看到我可以获取数据,只有添加新数据的问题。如果我将表名重命名为 BooksComments。我可以读取数据并得到错误 Invalid object name dbo.BookComments
-
问题可能出在您的对象模型上。从类中发布您的代码以及您的插入和获取方法。
-
我使用通用存储库,我也有 ArticleComments,我没有问题。我发现了新的问题。我有论坛,命名空间是 SGN.Modules.Forums.Entities。但是当我尝试获取数据时,我得到了错误。因为 EF 尝试在 SGN.Core 中获取论坛实体
-
发布您的代码。不看就很难猜出问题出在哪里。
标签: c# entity-framework-6