Linq 用于填充ViewModel的实体框架
我不确定从哪里开始使用实体框架。下面是表格数据的示例。首先通过代码创建表Linq 用于填充ViewModel的实体框架,linq,entity-framework,Linq,Entity Framework,我不确定从哪里开始使用实体框架。下面是表格数据的示例。首先通过代码创建表 I have 5 tables: Id - Person 12 - John 13 - Sarah 14 - Bob 15 - Frank Id - Package 1 - Standard 2 - Extra 3 - Gold 4 - Off Season Id - Features 21 - Feature A 22 - Feature B 23 - Feat
I have 5 tables:
Id - Person
12 - John
13 - Sarah
14 - Bob
15 - Frank
Id - Package
1 - Standard
2 - Extra
3 - Gold
4 - Off Season
Id - Features
21 - Feature A
22 - Feature B
23 - Feature C
24 - Feature D
Link Tables
PersonId - PackageId
12 - 1
12 - 4
13 - 3
14 - 2
15 - 1
15 - 2
PackageId - FeatureId
1 - 21
1 - 22
2 - 21
2 - 22
2 - 23
3 - 21
我知道我可以找出一个人的特征,比如:
var person = _db.Persons
.Where(p => p.Id == id)
.Include(p => p.Packages)
.Include("Packages.Features")
.SingleOrDefault();
public class PersonViewModel
{
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
...
public List<FeatureViewModel> Features { get; set; }
}
var person = _db.Persons
.Where(p => p.Id == id)
.Include(p => p.Packages)
.Include("Packages.Features")
.SingleOrDefault();
但是,我希望得到一个ViewModel类,甚至是一个只有以下列的列表:
PersonId Person FeatureId Feature
12 - John - 21 - Feature A
12 - John - 22 - Feature B
我知道我可以用SQL来做。我只是不知道如何使用Linq和实体框架。这样做的最佳实践是什么?我建议首先使用EF代码。 可以创建以下类:
public class Person
{
[Key]
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
...
public ICollection<Package> Packages { get; set; }
}
public class Package
{
[Key]
public int Id { get; set; }
public string Name { get; set; }
...
public ICollection<Feature> Features { get; set; }
}
public class Feature
{
[Key]
public int Id { get; set; }
public string Name { get; set; }
...
}
例如,要使用Automapper填充ViewModel,请执行以下操作:
var personViewModel = Mapper.Map<PersonViewModel>(person);
var personViewModel=Mapper.Map(person);
你真的必须展示一些初步的努力,否则我们不知道从哪里开始。我是说,我们能假设你基本上知道如何使用EF吗?LINQ的基本知识?您使用的是数据访问层吗?代码优先还是数据库优先?可以在控制器或视图模型中填充集合。在我们帮助你之前,你必须先告诉我们你在做什么。最后一部分,汽车制造商,是我唯一想要的!非常感谢。一个问题。。。FeatureViewModel,这是另一个ViewModel吗?或者你是说名单?