我正在使用Intranet应用程序 - 所以Windows身份验证。
用户名的格式为“ADHP \ BCOOPER” - 我希望用户在登录时能够显示“友好名称”,因此要映射帖子 - > UserName属性,它是一个字符串,给CorpUsers - > UserName属性,所以我可以使用.Include(x => x.CorpUsers)链接我的Linq查询中的表
如何链接这样的两个表(当它不是ID的/ int时,而是字符串)?
这些是我刚才的域模型:
public class Post
{
public int PostId { get; set; }
public string Content { get; set; }
public string UserName { get; set; }
public DateTime DateOfPost { get; set;
}
public class CorpUsers
{
public int CorpUsersId { get; set; }
public string UserName { get; set; }
public string FriendlyName { get; set; }
}
谢谢
答案 0 :(得分:1)
很难说出你想要的东西。即MVC映射或LINQ
连接。
在LINQ
中你可以这样做:
var Posts = (from cu in ListCorpUsers
join p in ListPosts on cu.UserName equals p.UserName
select new {
FriendlyName = cu.FriendlyName,
UserName = cu.UserName,
Content = p.Content
}).ToList();
答案 1 :(得分:0)
这与您处理整数或字符串无关,而是与您的桌子上的关键字有什么关系。如果您希望外键是相关表中的用户名,则用户名必须是您的用户表上的主键。这就是数据库关系的工作方式。但是,我根本不建议将用户名作为主键。