我对这种动态的lambda创作非常陌生。如果C#可以像JS / TS一样工作,那么这将很容易实现,但是不幸的是,它并非如此。现在,我的想法是做这样的事情:
User u = new User() { Email = "user@app.com", Password = "aaaaaa" };
UserMetadata m = new UserMetadata() { IdUser = u.Id, User = u, FirstName = "User" };
db.Users.AddIfNotExists(x => x.Email, u);
db.UserMetadatas.AddIfNotExists(x => x.User.Email, m);
db.SaveChanges();
请注意,只有在其嵌套属性User.Email 不匹配的情况下,我要在db.UserMetadatas.AddIfNotExists
行中添加UserMetadata
类。
我已经使用单个属性(它与User
一起使用),但是当我尝试对UserMetadata
进行操作时,它告诉我Email
不属于{{ 1}}(这很有意义)。似乎代码正在跳过(或未创建)嵌套属性中的查找。
我的想法是有一个通用方法可用于任何实体,两个层次对我来说足够了。
我当前的代码:
UserMetadata
提前谢谢! :)