Thank you for the pre-release build. The problem with multiple LoadWith() is now fixed.
But I have now two other problems.
The following statement gives an error:
Code: Select all
var recordSet = from m in PPCustomer.Movies
where m.AssetId == AssetId
orderby m.MovieId
select m;
foreach (var movie in recordSet)
{
...
}
Object reference not set to an instance of an object.
at Devart.Data.Linq.Provider.ObjectReader`1.e()
at Devart.Data.Linq.Provider.ObjectReader`1.MoveNext()
Deployed on Server:
Object reference not set to an instance of an object.
at Devart.Data.Linq.Provider.ObjectReader`1.e()
at Devart.Data.Linq.Provider.ObjectReader`1.Dispose()
If I change the statement and call ToList() it is working.
Code: Select all
var recordSet = (from m in PPCustomer.Movies
where m.AssetId == AssetId
orderby m.MovieId
select m).ToList();
The other problem seems to be a multi-threading issue:
Cannot access a disposed object. Object name: 'DataContext accessed after Dispose.'.
at Devart.Data.Linq.DataContext.b()
at Devart.Data.Linq.DataContext.e()
at Devart.Data.Linq.Provider.DeferredQuery`3.a(TKeyQuery A_0)
at Devart.Data.Linq.Provider.DeferredSource`2.b()
at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
at lambda_method(ExecutionScope , f )
at Devart.Data.Linq.Provider.ObjectReader`1.g()
at Devart.Data.Linq.Provider.ObjectReader`1.b()
at Devart.Data.Linq.Provider.ObjectReader`1.MoveNext()
Here is the example code. This exception happens only a few times.
Code: Select all
var recordSet = (from m in PPCustomer.Mailings.LoadWith(m => m.User).LoadWith(u => u.MailingRecipients)
join u in PPCustomer.Users on m.CreatedByUserId equals u.UserId
join mr in PPCustomer.MailingRecipients on m.MailingId equals mr.MailingId
join sq in PPCustomer.Users on mr.UserId equals sq.UserId into lj
from u2 in lj.DefaultIfEmpty()
select new
{
MailingId = m.MailingId,
CreationDate = m.CreationDate,
EmailAddress = u.EmailAddress,
RecipientEmailAddresses = m.MailingRecipients.Where(mrts => mrts.MailingId == m.MailingId),
Subject = m.Subject,
State = m.Deleted ? (int)MailingState.Deleted : (m.ExpirationDate mailingListItem = new List();
foreach (var record in recordSet)
{
...
}
________
Bond Insurance Dicussion