繁体   English   中英

MVC通过字符串键而不是int键链接两个表

[英]MVC linking two tables by a string key rather than an int key

我正在使用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; }

}

谢谢

在这里很难说出你想要什么。 即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();

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM