I'm having some issues with grabbing a list of type "SaleToBarbari" through Linq to entity and inserting them into database using bulk insert. I keep getting the error "Sequence contains more than one element". Any ideas? Here is my code:
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);
I have searched a lot but nothing helpful. Here is my 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
Finally I found the problem and fixed it. the problem was in my view-tables added to model with mapping wrong same fields, by fixing them the problem gone. Maybe this be helpful for someone.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.