我正在花时间学习ef(特别是版本6)。
我在mssql中创建了两个表,并将ef6链接到创建ef模型框架的数据库。
然后我用代码创建了类。我的愿望是用“userdatas”的项目列表拉一行(是的,我知道拼写错误)。
考虑这个代码:
public class user
{
[Key]
public int pkID;
public string ForeignCode;
public string UserName;
public virtual List<UserData> UserDatas { get; set; }
}
public class UserData
{
[Key]
public int pkID;
public int fkUserID;
public string ColumnName;
public string ColumnValue;
}
class Program
{
static TestData db = new TestData();
static void Main(string[] args)
{
var record = db.tblUsers.Select(x => new { x.UserName, x.pkID }).FirstOrDefault();
var record2 = db.tblUsers.Include(x => x.tblUserDatas).ToList();
Console.ReadLine();
}
}
第一个查询只是提取tblusers表中主记录的测试。
第二个查询是我试图提取与该用户相关的所有字段,这些字段包括名字、姓氏、地址等…
当我在console.readline()上设置一个断点时,将看到5行记录2。“user”类在每一行中都是重复的。我本以为它只列出一次,其中列出了“userdatas”的项目列表。
对于包含“userdatas”列表的一行,如何使该查询按预期完成?
同样,这只是为了学习,所以不要担心数据,如果这是存储数据的最佳方式。