ASP.NET EF Database First 4.1 EDMX Extent1.XXX在字段列表中

时间:2013-12-07 10:23:47

标签: c# mysql asp.net entity-framework

我有一个MYSQL数据库。我有更多的用户和地址表,但问题从这里开始。我有一个网页。当我尝试登录时,它调用webservice并转到业务类并执行以下方法来获取用户的地址。我没有地址和用户表的任何外键

public IEnumerable<address> GetAddressByUserId(int UserId){
 try
 {
    using (var contex = new eTicaretEntity())
    {
      return contex.addresses.Where(x => x.UserId == UserId).ToList();
    }
 }
 catch (Exception exc)
 {
   throw exc;
 }
}

当谈到代码的哪一部分失败时。并说:

  

'字段列表'中的未知列'Extent1.AddressType'

我会将链接放到edmx文件中表格的屏幕截图中。这两个表之间没有外键。并且在地址表中记录了一行,其中包含我传递给业务的用户ID。我认为没有理由这样做。

为什么我看到这个错误?我怎么解决它?有人可以提供帮助吗?任何帮助/思想赞赏。

感谢。

Address Table
User Table

修改 我很抱歉,如果我迟到这个信息,但我在创建模型后添加了addresstype到表。我的意思是我有桌子和edmx文件,这是非常好的。然后我添加了这一列,并在问题开始之后从db更新了edmx。

2 个答案:

答案 0 :(得分:0)

Gert的评论是正确的,所以这是一个新尝试。

我已经测试了它从数据库,存储模型和概念模型中删除Field的各种组合。

在任何情况下,我都没有得到与问题相同的错误。但我正在使用SQL Server。

“Extent1.AddressType”来自EF生成的SQL语句。如果该列不在数据库中,您将收到“无效的列名:AddressType”错误。

要查找错误,请将表导入新的EF模型,检查它是否有效,然后将两个模型中的xml相互比较。

答案 1 :(得分:0)

即使使用适当的数据库生成edmx,您也应该尝试通过从edmx中删除Address表来从数据库更新模型。