我通过实体框架将数据库实例化为'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字符串中测试了它,它会提取正确的数据。 显然,这是因为我做错了,我怀疑我使用了错误的引用或奇怪的东西。
答案 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
}