生成的模型 类 不包含引用的对象
Generated model classes does not contain referenced objects
我正在尝试使用脚手架制作数据库优先的应用程序,但 运行 遇到了问题。
使用此处指定的数据库:
CREATE TABLE Group (
Id UNIQUEIDENTIFIER NOT NULL PRIMARY KEY,
...
);
CREATE TABLE Person (
Id UNIQUEIDENTIFIER NOT NULL PRIMARY KEY,
GroupId UNIQUEIDENTIFIER FOREIGN KEY REFERENCES Group(Id) NOT NULL,
...
);
我生成 classes 用于使用 scaffold
访问数据库。
但是生成的 Group
class 确实可以访问组中的人。
如果我尝试像这样访问组中的人员:
var personsInGroup = myGroup.Persons.ToList();
personsInGroup
-列表是空的,即使我检查数据库,所有 Person
都有一个 GroupId
。
相反,我必须像这样找到组中的人:
var personsInGroup = context.Persons.Where(p => p.GroupId == myGroup.Id).ToList();
我是做错了什么还是我误解了这些生成的 classes 是如何工作的?
@David Browne 指点我阅读 Loading Related Data,我确实在其中找到了问题的答案。
诀窍是在我从数据库中获取组数据时指定我需要个人数据。可以这样做:
var group = context.Groups
.Include(g => g.Persons)
.First();
var personsInGroup = group.Persons;
我正在尝试使用脚手架制作数据库优先的应用程序,但 运行 遇到了问题。
使用此处指定的数据库:
CREATE TABLE Group (
Id UNIQUEIDENTIFIER NOT NULL PRIMARY KEY,
...
);
CREATE TABLE Person (
Id UNIQUEIDENTIFIER NOT NULL PRIMARY KEY,
GroupId UNIQUEIDENTIFIER FOREIGN KEY REFERENCES Group(Id) NOT NULL,
...
);
我生成 classes 用于使用 scaffold
访问数据库。
但是生成的 Group
class 确实可以访问组中的人。
如果我尝试像这样访问组中的人员:
var personsInGroup = myGroup.Persons.ToList();
personsInGroup
-列表是空的,即使我检查数据库,所有 Person
都有一个 GroupId
。
相反,我必须像这样找到组中的人:
var personsInGroup = context.Persons.Where(p => p.GroupId == myGroup.Id).ToList();
我是做错了什么还是我误解了这些生成的 classes 是如何工作的?
@David Browne 指点我阅读 Loading Related Data,我确实在其中找到了问题的答案。
诀窍是在我从数据库中获取组数据时指定我需要个人数据。可以这样做:
var group = context.Groups
.Include(g => g.Persons)
.First();
var personsInGroup = group.Persons;