【发布时间】:2011-03-23 16:58:09
【问题描述】:
我有两张桌子:
实体
ID (PK), 整数
名称
描述用户
身份证(PK)
EntityID, int(这个没有连接到Entity表)
现在我正在使用 LINQ 来提取具有 Entity.ID = something 的记录。这将在我的 GridView 中显示几条记录。
这是我的 LINQ 语句:
protected void Page_Load(object sender, EventArgs e)
{
string getEntity = Request.QueryString["EntityID"];
int getIntEntity = Int32.Parse(getEntity);
OISEntityTestingDataContext db = new OISEntityTestingDataContext();
//OISLinqtoSQLDataContext db = new OISLinqtoSQLDataContext();
var tr =
from r in db.Users
join s in db.Entities on r.UserID equals s.ID
where s.ID == getIntEntity
select new
{
//To Show Items in GridView!
};
GridView1.DataSource = tr;
GridView1.DataBind();
}
现在我收到关于“加入”的错误消息:
连接子句中的一个表达式的类型不正确。调用“加入”时类型推断失败。
这是什么意思?有人可以帮我解决这个问题。谢谢!
【问题讨论】:
-
你确定这两个 id 的类型相同,int32 不是 int16 或其他。
-
您确定
r.UserID和s.ID属于同一类型吗? -
两者都是SQL中的INT类型。
-
两者是否都映射到您的模型中的 Int32(好像您正在使用实体框架)。
-
@klm9971 在 VS 中让鼠标悬停在它们上方:这应该显示 C# 看到的类型,以防万一它们不同。
标签: c# asp.net linq-to-sql web-applications