MVC通过字符串键而不是int键链接两个表
本文关键字:两个 链接 字符串 MVC int | 更新日期: 2023-09-27 18:19:15
我正在使用内部网应用程序-所以Windows身份验证。
用户名的格式为"ADHP'BCOOPER"-我希望用户能够在登录时显示一个"友好的名称",所以要映射Post -> Username属性,这是一个字符串,到CorpUsers -> Username属性,这样我就可以在我的Linq查询中链接表,使用。include (x => x.CorpUsers)
你如何链接两个表这样(当它不是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();
这与您处理的是整型还是字符串无关,而是与表中哪些是键或哪些不是键有关。如果希望外键是相关表中的用户名,那么用户名必须是用户表中的主键。这就是数据库关系的工作方式。但是,我并不建议将用户名作为主键。