[英]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.