将对象列表添加到Entity数据库

时间:2012-12-31 14:12:53

标签: c# entity-framework lambda

我是EF的新手。我从数据库创建了实体模型。

我有表CurrencyMaster([ FromCurrency ],[ ToCurrency ],[ ActiveStatus ])和{{1} }([ ID ],[ FromCurrency ],[ ToCurrency ],[日期],[ CurrencyFactor ])

我正在为CurrencyConversion记录进行循环,因此CurrencyMaster将获取DownloadCurrencyRates个对象。 我只想将这些对象添加到实体数据库中。

我试过这样的事情

List<CurrencyRate>

我怎样才能以正确的方式做同样的事情? 如果没有public DownloadStatus DownloadUpdateCurrency(DateTime toDate, DateTime fromDate) { CurrencyEntities db = new CurrencyEntities(); var curMasters = db.CurrencyMasters.Where(x => x.ActiveStatus == 0); foreach (var item in curMasters) { var curcRatesList = DownloadCurrencyRates(fromDate, toDate, item.FromCurrency, item.ToCurrency); //I know this is a bad code curcRatesList.Select(x => { db.AddToCurrencyConversions( new CurrencyEntity.CurrencyConversion { Date = x.date, CurrencyFactor = x.value, FromCurrency = item.FromCurrency, ToCurrency = item.ToCurrency } ); return true; }); } db.SaveChanges(); return DownloadStatus.DownloadSuccess; } 的循环,我有什么方法可以做到这一点吗?

我正在使用.NET 3.5,并且不确定EF版本..我没有尝试执行代码(我需要其他一些设置),但我很确定我所做的是不正确的..所以我在这里发帖..

1 个答案:

答案 0 :(得分:1)

程序是正确的。 EF中没有批量插入功能,允许在单个方法调用中添加整个实体列表。您必须循环遍历项目并逐个添加。

作为旁注:我只会使用普通的foreach循环而不是那种奇怪的Select技巧(它会误用Select方法,但它会起作用)。或者 - 如果curcRatesList的类型为List<T> - 您可以使用Foreach List<T>方法代替Select