使用EF实例化数据库的原始查询保持失败

时间:2015-08-31 21:15:15

标签: asp.net entity-framework

我通过实体框架将数据库实例化为'db', 在我的aspx后面的c#类中 这就是我做到的:

var db = new fm_base_azure(); 

这很有效,我已经从数据库中提取了一些东西。

现在我只是尝试使用原始SQL查询从联结表中获取一些数据,但不断收到此错误。

  

数据阅读器与指定的'fm_app.meetingmember'不兼容。类型为“Id”的成员在数据读取器中没有相应的具有相同名称的列。

这是代码:

var memberObjects = db.meetingmember.SqlQuery("SELECT e0.checkedin, e1.name
    FROM meetingmember as e0 INNER JOIN member AS e1 ON e0.member = e1.id").ToList();

让我马上说查询工作。我在Query字符串中测试了它,它会提取正确的数据。 显然,这是因为我做错了,我怀疑我使用了错误的引用或奇怪的东西。

1 个答案:

答案 0 :(得分:0)

所以我做到了。基于对我原始帖子的评论。 我从桌子和联合桌子中选择了所有东西......正如你所看到的那样。

var memberObjects = db.meetingmember.SqlQuery("SELECT * FROM meetingmember as e0 INNER JOIN member AS e1 ON e0.member = e1.id WHERE e0.meeting =" + meeting_id).ToList();

然后我意识到..因为我有实体框架我的模型已经创建了引用,因为它注意到了外键。

意思是我最终得到了这段代码: var memberObjects = db.meetingmember.SqlQuery("SELECT * FROM meetingmember WHERE meeting =" + meeting_id).ToList();

所以我不做任何加入,但我也不需要,因为该表已经有参考。所以之后在foreach循环中我最终做了

foreach(meetingmember m in memberObjects) { m.'ReferencedTable'.value }

相关问题