实体框架在现有列表中添加新属性

本文关键字:新属性 属性 添加 框架 列表 实体 | 更新日期: 2023-09-27 18:05:10

我使用这段代码,以便通过数据库查询并将值插入到模型中:

  UserContext user = new UserContext();
 List<MitarbeiterDataModel> mitarbeiter = new List<MitarbeiterDataModel>();
 var users = user.Users.Select(x => new MitarbeiterDataModel{ Id = x.Id, Vorname = x.Vorname, Nachname = x.Nachname, Studio = x.Studio }).ToList();
 mitarbeiter.AddRange(users);

现在我有一个员工列表,看起来像这样,例如:

------------------------------
| Id | Name | Opportunities  |
------------------------------
| 1  | Tom  |                |
------------------------------
| 2  |John  |                |
------------------------------

我的目标是填补机会栏。问题是这些值来自另一个表。所以我得稍后再加上它们。有人能告诉我怎么做吗?

mitarbeiter.Where(x => x.Id == 1).Select(x => new MitarbeiterDataModel { Gelegenheiten = 2 });

"Gelegenheiten"意味着机会,并且存在于我的数据模型MitarbeiterDataModel中。我用这种方法试过了……

实体框架在现有列表中添加新属性

就像Jeff Orris说的,你可以连接两个表,然后像这样创建你的viewModels:

UserContext context = new UserContext();
List<MitarbeiterDataModel> mitarbeiter = new List<MitarbeiterDataModel>();
var users = (
    from user in context.Users
    join opp in context.Opportunities on user.OppurtunityId equals opp.OppurtunityId
    select new MitarbeiterDataModel { 
        Id = user.Id, 
        Vorname = user.Vorname, 
        Nachname = user.Nachname, 
        Studio = user.Studio,
        Gelegenheiten = opp.SomeField
        })
    .ToList();
mitarbeiter.AddRange(users);

当然,我不知道你的课的内容,所以我编了一些字段。

对于Legacy数据,我认为您可以使用SQL游标来处理它,如

声明@Opportunitiesint

声明updatetrigger cursor for从Gelegenheiten中选择机会***

updatetrigger开放从updatetrigger获取next到@Opportunities虽然@@fetch_status = 0
开始

update employees set Opportunities =@Opportunities where ***

从updatetrigger获取next到@Opportunities
结束释放updatetrigger