[英]Entity Framework - AddOrUpdate using Linq and Lambda
我使用以下代码定义了一个设置类:
public Setting(string settingName, string settingValue, bool delay = false)
{
if (delay)
System.Threading.Thread.Sleep(10);
Id = Guid.NewGuid();
CreatedAtUtc = DateTime.UtcNow;
SettingName = settingName;
SettingValue = settingValue;
}
在设置控制器中,我定义了一个带有KeyValuePairs的字典,用于settingsName和settingValue。 使用foreach循环,我想遍历字典,为每个条目创建一个新设置。 我正在尝试以下代码,但是它将引发TargetInvocationException
:
foreach (KeyValuePair<string, string> setting in settings)
{
var temp = new Setting(setting.Key, setting.Value);
_appContext.Settings.AddOrUpdate(x =>
new {x.Id}, temp);
}
_appContext.SaveChanges();
我究竟做错了什么?
原因可能是没有空的构造函数。 尝试为类Setting
定义空的构造函数。
[Obsolete("Only for serialization", true])
public Setting()
{
}
您可以防止使用[Obsolete]
属性在代码中使用该构造函数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.