C# 在实体框架中使用外键访问数据的查询是什么?
我想列出表sale的数据,使用外键userId访问用户的名称,使用上下文执行此操作的正确方法是什么C# 在实体框架中使用外键访问数据的查询是什么?,c#,entity-framework,C#,Entity Framework,我想列出表sale的数据,使用外键userId访问用户的名称,使用上下文执行此操作的正确方法是什么 using (var context = new AppDbContext()) { var comic = context.sale.Select(d => d); } public class sale { public int saleId { get; set; } public DateTime date { get; set; } public
using (var context = new AppDbContext())
{
var comic = context.sale.Select(d => d);
}
public class sale
{
public int saleId { get; set; }
public DateTime date { get; set; }
public int userId { get; set; }
}
public class user
{
public int userId { get; set; }
public string name { get; set; }
public string surname { get; set; }
public string email { get; set; }
public string password { get; set; }
}
背景:
modelBuilder.Entity<sale>()
.HasOne<user>()
.WithMany()
.HasForeignKey(p => p.userId);
modelBuilder.Entity()
.HasOne()
.有很多
.HasForeignKey(p=>p.userId);
您需要更改类以添加导航属性:
public class sale
{
public int saleId { get; set; }
public DateTime date { get; set; }
public int userId { get; set; }
public user user { get; set; }
}
public class user
{
public int userId { get; set; }
public string name { get; set; }
public string surname { get; set; }
public string email { get; set; }
public string password { get; set; }
public ICollection<sale> sales { get; set; } = new HashSet<sale>();
};
您需要更改类以添加导航属性:
public class sale
{
public int saleId { get; set; }
public DateTime date { get; set; }
public int userId { get; set; }
public user user { get; set; }
}
public class user
{
public int userId { get; set; }
public string name { get; set; }
public string surname { get; set; }
public string email { get; set; }
public string password { get; set; }
public ICollection<sale> sales { get; set; } = new HashSet<sale>();
};
要在没有显式连接的情况下“顺利”完成,您需要在
sale
类中创建类型为user
的导航属性。然后,您将能够执行context.sales.Include(s=>s.User).ToList()
若要在不显式联接的情况下“顺利”执行,您需要在sale
类中创建User
类型的导航属性。然后您将能够执行context.sales.Include(s=>s.User).ToList()
这样做会添加sale表,它会留下一列userId和userId1,是否可以?我应该在userId1中保存哪些数据?它不应该添加额外的列,您使用的是哪个版本的EF?这样做会添加sale表,它留下了一列userId和userId1,可以吗?我应该在userId1中保存什么数据?它不应该添加额外的列,您使用的是哪个版本的EF?
var user = context.sale.Include(a => a.user)...