Linq离开了连接多个表

时间:2017-07-06 08:40:44

标签: c# linq

您好我正在.net中开发Web应用程序。我遇到过以下情况。

下面是我的第一张表。

perm_levelid  scrn_id  perm_id  perm_read  perm_write
40               1        2         1         1
41               2        2         1         1
42               3        2         1         1

以下是我的第二张表。

scrn_id   scrn_name   
1         UserProfile
2         Change Password
3         Dashboard
4         Lease request

上面两个表之间的关系是scrn_id

我期待的输出是

scrn_id  perm_id  perm_read  perm_write
1           2           1      1
2           2           1      1
3           2           1      1
4           0           0      0

我希望结果中共有4行。 scrn_id在两个表中匹配1,2,3所以我应该检索第一个表perm_read和perm_write值。我想得到第二张表的剩余价值。

我尝试如下。

List<screendetails> obj = new List<screendetails>();
obj = (from c in db.rolsp_perm_levelmapping
       join mapdetails in db.rolsp_scrn_screen on c.scrn_id equals mapdetails.scrn_id
       into mapObj
       from wt in mapObj.DefaultIfEmpty()
       where c.perm_id== permisssionID
       select new screendetails {
            scrn_id=c.scrn_id,
            scrn_name= wt.scrn_name,
            Read=c.perm_read,
            Write=c.perm_write
}).ToList();
return obj;

以上查询不会产生正确的结果。我可以在这里得到一些帮助解决这个问题吗?谢谢

1 个答案:

答案 0 :(得分:3)

# Query a document
query = { 'query': 'SELECT * FROM <collection name> ....'}    
docs = client.QueryDocuments(coll_link, query)
doc = list(docs)[0]

# Get the document link from attribute `_self`
doc_link = doc['_self']
# Modify the document
.....
# Replace the document via document link
client.ReplaceDocument(doc_link, doc)

尝试使用此...希望这会有所帮助...