我有一个使用实体框架代码优先的 C# 项目
public class DatabaseContext : DbContext
{
public DatabaseContext() : base("name=DatabaseContext")
{
Database.SetInitializer<DatabaseContext>(new DropCreateDatabaseIfModelChanges<DatabaseContext>());
Database.CreateIfNotExists();
}
public void Init(){}
//Множество объектов
public DbSet<Project> Projects { get; set; }
}
如您所见,EntityFramework 存储了一组特定的 Projects 对象。Project 对象有一个 Items 字段,它是一个集合
public class Project
{
public Project(){}
[Key]
public int Id{ get;set;}
//Коллекция
ObservableCollection<Item> items = new ObservableCollection<Item>();
public ObservableCollection<Item> Items
{
get
{
return items;
}
set
{
items = value;
}
}
}
Entity Framework 创建的数据库图如下所示:
通过 SQL,从 Item 表中获取一行,知道 Id,很简单。
Select * FROM dbo.Items where Id=1
问题:如何在不将项目中的所有 Items 集合加载到程序中的情况下使用 Entity Framework 工具执行相同的操作?

添加到项目
然后你只需要使用方法
Find:使用LINQ。
作为一种选择:
或者:
为了不为 DbContext 类的实例以公共属性的形式创建额外的 DbSet,可以在需要的地方动态获取它们
此类对象也将由实体框架监控,它们的更改将反映在数据库中