[英]sequence contains more than one matching element on Bulk insert
我有一些問題,通過Linq獲取類型“SaleToBarbari”列表到實體,並使用批量插入將它們插入數據庫。 我一直收到錯誤“序列包含多個元素”。 有任何想法嗎? 這是我的代碼:
var bas = new SaleToFreightageEntities();
bas.Configuration.AutoDetectChangesEnabled = false;
bas.Configuration.ValidateOnSaveEnabled = false;
var L = (from a in bas.Last
select a).FirstOrDefault();
if (L != null)
{
Last = Convert.ToInt64(L.LastID);
}
var w = (from l in bas.RadifsSendCenter
where l.id_rec > Last
select new { l.id_rec }).ToList();
if (w.Count>0 && (w.Last().id_rec > Last))
{
bas.Last.Update(t => new Last { BeforLast = L.LastID });
var q = (from d in bas.RadifsSendCenter
where d.id_rec > Last
select new
{
d.id_rec,
d.Radifkolsal,
d.NameKala,
d.ShenaseKala,
d.Vazn,
d.Bandal,
d.NameGreid,
d.Dobaskul,
d.TedadBas,
d.del,
d.Tozih,
d.NoeShemsh,
d.Metrazh,
d.Keyfiat,
d.Address,
d.City,
d.Tel,
d.ShenaseMeli,
d.Shenase,
d.Tolid,
d.Rahgiry,
d.Sefaresh,
d.Karbar,
d.TimeErsal,
d.DateErsal,
d.CodePosti
}).ToList();
var u = (from bu in bas.OperatorTable
where bu.OperatorName == LoginForm.Username && bu.Type
select bu).FirstOrDefault();
var list = q.Select(b => new SaleToBarbari
{
SaleID = b.id_rec,
Radifkolsal = TrimEnd(b.Radifkolsal),
CodeKala = TrimEnd(b.ShenaseKala),
NameKala = TrimEnd(b.NameKala),
Bandal = b.Bandal,
TedadBaskool = b.TedadBas,
Vazn = b.Vazn,
del = b.del,
Metrazh = b.Metrazh,
City = TrimEnd(b.City),
ShenaseMeli = TrimEnd(b.ShenaseMeli),
Greid = TrimEnd(b.NameGreid),
TolidCondition = TrimEnd(b.Tolid),
Shenase = TrimEnd(b.Shenase),
Keyfiat = b.Keyfiat,
Tell = TrimEnd(b.Tel),
Address = TrimEnd(b.Address),
SaleTozihat = TrimEnd(b.Tozih),
NoeShemsh = TrimEnd(b.NoeShemsh),
UserReceivedID = u.ID,
Rahgiry = TrimEnd(b.Rahgiry),
Sefaresh = TrimEnd(b.Sefaresh),
CodePosti = TrimEnd(b.CodePosti),
SaleOperator = TrimEnd(b.Karbar)
}).ToList();
var options = new BulkInsertOptions
{
EnableStreaming = true
};
bas.BulkInsert(list, options);
我搜索了很多,但沒有任何幫助。 這是我的Stack-trace:
at System.Linq.Enumerable.Single[TSource](IEnumerable`1 source)
at EntityFramework.MappingAPI.Mappers.DbFirstMapper.GetTableName(String typeFullName) in c:\dev\EntityFramework.MappingAPI\trunk\src\EntityFramework.MappingAPI\Mappers\DbFirstMapper.cs:line 88
at EntityFramework.MappingAPI.Mappers.DbFirstMapper.PrepareMapping(String typeFullName, EdmType edmItem) in c:\dev\EntityFramework.MappingAPI\trunk\src\EntityFramework.MappingAPI\Mappers\DbFirstMapper.cs:line 26
at EntityFramework.MappingAPI.Mappers.MapperBase.MapEntity(String typeFullName, EdmType edmItem) in c:\dev\EntityFramework.MappingAPI\trunk\src\EntityFramework.MappingAPI\Mappers\MapperBase.cs:line 330
at EntityFramework.MappingAPI.Mappings.DbMapping..ctor(DbContext context) in c:\dev\EntityFramework.MappingAPI\trunk\src\EntityFramework.MappingAPI\Mappings\DbMapping.cs:line 82
at EntityFramework.MappingAPI.EfMap.Get(DbContext context) in c:\dev\EntityFramework.MappingAPI\trunk\src\EntityFramework.MappingAPI\EfMap.cs:line 60
at EntityFramework.MappingAPI.Extensions.MappingApiExtensions.Db(DbContext ctx, Type type) in c:\dev\EntityFramework.MappingAPI\trunk\src\EntityFramework.MappingAPI\Extensions\MappingApiExtensions.cs:line 51
at System.Linq.Enumerable.ToDictionary[TSource,TKey,TElement](IEnumerable`1 source, Func`2 keySelector, Func`2 elementSelector, IEqualityComparer`1 comparer)
at EntityFramework.BulkInsert.Helpers.MappedDataReader`1..ctor(IEnumerable`1 enumerable, IEfBulkInsertProvider provider) in c:\dev\EntityFramework.BulkInsert\dev\Src\EntityFramework.BulkInsert\Helpers\MappedDataReader.cs:line 58
at EntityFramework.BulkInsert.Providers.EfSqlBulkInsertProviderWithMappedDataReader.Run[T](IEnumerable`1 entities, SqlTransaction transaction, BulkInsertOptions options) in c:\dev\EntityFramework.BulkInsert\dev\Src\EntityFramework.BulkInsert\Providers\EfSqlBulkInsertProviderWithMappedDataReader.cs:line 22
at EntityFramework.BulkInsert.Providers.ProviderBase`2.Run[T](IEnumerable`1 entities, IDbTransaction transaction, BulkInsertOptions options) in c:\dev\EntityFramework.BulkInsert\dev\Src\EntityFramework.BulkInsert\Providers\ProviderBase.cs:line 77
at EntityFramework.BulkInsert.Providers.ProviderBase`2.Run[T](IEnumerable`1 entities, BulkInsertOptions options) in c:\dev\EntityFramework.BulkInsert\dev\Src\EntityFramework.BulkInsert\Providers\ProviderBase.cs:line 96
最后我找到了問題並修復了它。 問題是在我的視圖表中添加到模型與映射錯誤相同的字段,通過修復它們的問題消失了。 也許這對某人有幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.