异常使用Linq查询EF Code首先在SQL Server表

本文关键字:SQL Server Code Linq 查询 EF 异常 | 更新日期: 2023-09-27 18:11:02

我首先针对我的DB(特别是一个名为tblExpenseMain的表)设置了EF代码。

在我的控制器中,我试图将我的'ExpenseMain'类的实例传递给视图,以便可以呈现详细信息。手动创建实例并传递它可以工作:

ExpenseMain em = new ExpenseMain { Card_Number = "123", UniqueID_ERLineID = "blah", Item_Amount = 500, Item_Expense_Type = "something"};
            return View("_Basic");

但是尝试像这样用LINQ查询它会给我一个异常:

ExpenseMain model = (from e in db.ExpenseMains
                                 where e.UniqueID_ERLineID == transUniqueID
                                 select e).SingleOrDefault();

它告诉我检查innerexception以找到问题。我用try/catch包围了它,innerexception消息是:

e.InnerException。消息= "无效的对象名称'dbo.ExpenseMains'。"

有什么建议我做错了吗?我希望linq查询只是抓取我的单个实例,并从那里走。将'Expensemain model'更改为'var model',并查看var变成了什么,确认它变成了'Expensemain'。

谢谢

异常使用Linq查询EF Code首先在SQL Server表

如果您的类名与表名不同,那么您必须配置EF来映射它们。您可以使用table属性并给出表名。

[Table("tblExpenseMain")]
public class ExpenseMain
{
    //properties
}

您的解决方案中有几个数据访问层吗?可能是ExpenseMain是一个旧实体,而不是从EF生成的。再次检查是否存在类似的实体

看起来这里有两个类:ExpenseMainExpenseMains