0

我正在使用 Intranet 应用程序 - 所以 Windows 身份验证。

用户名的格式为“ADHP\BCOOPER” - 我希望用户在登录时能够显示“友好名称”,因此希望将 Post -> 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; }

}

谢谢

4

2 回答 2

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();
于 2013-06-20T10:27:31.887 回答
0

这与您是在处理整数还是字符串无关,而是与表上的键是什么无关。如果您希望外键成为相关表中的用户名,则用户名必须是您的用户表中的主键。这就是数据库关系的工作方式。但是,我根本不建议将用户名设置为主键。

于 2013-06-20T14:59:54.173 回答