Click here to Skip to main content
15,887,350 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
C#
public static Func<TAGEntities, BusinessAddress, CustomerMerchant, Customer, User, IQueryable<BaseBusinessAddressModel>> GetOrdersQuery =

CompiledQuery.Compile((TAGEntities db, BusinessAddress address, CustomerMerchant merchant, Customer cus, User user) =>(db)=>

(from b in db.BusinessAddresses.Where(PredicateBuilder.True<BusinessAddress>())
 join cm in db.CustomerMerchants on address.BusinessId equals merchant.BusinessId
 join c in db.Customers on merchant.CustomerId  equals c.Id
 join u in db.Users on cus.UserId equals cus.Id
 select new  BaseBusinessAddressModel
 {
     Id = b.Id,
     BusinessId = b.BusinessId,
     BusinessAddressTypeId = b.BusinessAddressTypeId,
     BranchCode = b.BranchCode,
     AddressLine1 = b.AddressLine1,
     -------------=-----------
     -------------=-------------
     LastUpdated = b.LastUpdated,
     IsDeleted = b.IsDeleted,
     LogiName = u.LoginName,
     TimeZone = b.TimeZone
}


Error occured at compile() method in query.
Please help me.
Thanks....

What I have tried:

C#
public static Func<TAGEntities, BusinessAddress, CustomerMerchant, Customer, User, IQueryable<BaseBusinessAddressModel>> GetOrdersQuery =

CompiledQuery.Compile((TAGEntities db, BusinessAddress address, CustomerMerchant merchant, Customer cus, User user) =>(db)=>

(from b in db.BusinessAddresses.Where(PredicateBuilder.True<BusinessAddress>())
 join cm in db.CustomerMerchants on address.BusinessId equals merchant.BusinessId
 join c in db.Customers on merchant.CustomerId  equals c.Id
 join u in db.Users on cus.UserId equals cus.Id
 select new  BaseBusinessAddressModel
 {
     Id = b.Id,
     BusinessId = b.BusinessId,
     BusinessAddressTypeId = b.BusinessAddressTypeId,
     BranchCode = b.BranchCode,
     AddressLine1 = b.AddressLine1,
     -------------=-----------
     -------------=-------------
     LastUpdated = b.LastUpdated,
     IsDeleted = b.IsDeleted,
     LogiName = u.LoginName,
     TimeZone = b.TimeZone
}


Error occured at compile() method in query.
Posted
Updated 8-Sep-20 22:10pm
v3
Comments
F-ES Sitecore 8-Sep-20 12:50pm    
You have to specify the types for the arguments and the result you expect in angled brackets after the Compile method.

CompiledQuery.Compile<ArgType1, ArgType2, ResultType>(...)

https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/ef/language-reference/compiled-queries-linq-to-entities

Not knowing any of the types you're using it's hard to give a precise answer.
[no name] 8-Sep-20 12:53pm    
Then try it "without compiling".

1 solution

Looking at the documentation, it should be:
C#
public static Func<TAGEntities, BusinessAddress, CustomerMerchant, Customer, User, IQueryable<BaseBusinessAddressModel>> GetOrdersQuery =
    CompiledQuery.Compile<TAGEntities, BusinessAddress, CustomerMerchant, Customer, User, IQueryable<BaseBusinessAddressModel>>((db, address, merchant, cus, user) =>
        from b in db.BusinessAddresses.Where(PredicateBuilder.True<BusinessAddress>())
        join cm in db.CustomerMerchants on address.BusinessId equals merchant.BusinessId
        join c in db.Customers on merchant.CustomerId  equals c.Id
        join u in db.Users on cus.UserId equals cus.Id
        select new  BaseBusinessAddressModel
        {
            Id = b.Id,
            BusinessId = b.BusinessId,
            BusinessAddressTypeId = b.BusinessAddressTypeId,
            BranchCode = b.BranchCode,
            AddressLine1 = b.AddressLine1,
            ...
            LastUpdated = b.LastUpdated,
            IsDeleted = b.IsDeleted,
            LogiName = u.LoginName,
            TimeZone = b.TimeZone
        });
Compiled Queries (LINQ to Entities) - ADO.NET | Microsoft Docs[^]
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900