Known Limitations (current as of V9.7 FP2)
-----------------
- Invocation of store specific functions is not supported.
- Trusted Context Connection properties set in the Server Explorer Add Connection dialog do not get passed to the Entity Framework connections - this is an acknowledged limitation with the Server Explorer.
The following list has additional limitations specific to individual supported servers.
Note: Unless stated otherwise, the below limitations are applicable to all supported versions of the particular server type.
DB2 for Linux, Unix, and Windows
--------------------------------
- Invocation of Canonical functions other then Avg, BigCount, Count, Max, Min, StDev, Sum, BitWiseAnd, BitWiseOr, BitWiseNot, BitWiseXor, Abs, Ceiling, Floor, Round, Concat, IndexOf, Left, Length, LTrim, Replace, Right, RTrim, Substring, LoLower, ToUpper, Trim, CurrentDateTime, CurrentUTCDateTime, Day, Hour, Millisecond, Second, Minute, Month, Year is not supported.
DB2 for IBM i
-------------
- Invocation of Canonical functions other then Avg, BigCount, Count, Max, Min, StDev, Sum, Abs, Ceiling, Floor, Round, Concat, IndexOf, Left, Length, LTrim, Replace, Right, RTrim, Substring, LoLower, ToUpper, Trim, CurrentDateTime, CurrentUTCDateTime, Day, Hour, Millisecond, Second, Minute, Month, Year is not supported.
DB2 for z/OS
------------
- Invocation of Canonical functions other then Avg, BigCount, Count, Max, Min, StDev, Sum, Abs, Ceiling, Floor, Round, Concat, IndexOf, Left, Length, LTrim, Replace, Right, RTrim, Substring, LoLower, ToUpper, Trim, CurrentDateTime, CurrentUTCDateTime, Day, Hour, Millisecond, Second, Minute, Month, Year is not supported.
- Data type 'real' is not supported. Applications need to either use 'float' in the server table schema, or specify the type as 'float' in the client schema (EDM) even if the actual type on the server is 'real'.
- V8/V7 specific: An exception indicating some kinds of syntax error might be generated for queries that include Take/Top/First/Intersect/Except expressions. The result of the queries that include those expressions is undefined. Examples:
1) var query = from o in context.Orders
where o.ShipCity == "Seattle"
select o;
var result = query.First();
2) var mexico =
context.OrderDetails.Where(od => od.Order.ShipCountry == "Mexico").Select(od => od.Product);
var canada =
context.OrderDetails.Where(od => od.Order.ShipCountry == "Canada").Select(od => od.Product);
var query = mexico.Intersect(canada);
3) var query =
context.Customers.Select(e => e).Except(context.Orders.Where(o => o.ShipCountry == "Mexico").Select(o => o.Customer));
4) var query = context.Orders.Include("OrderDetails").Top("1");
5) var query = context.Orders.Include("OrderDetails").Include("OrderDetails.Product").Take(3).Select(o => o);
IBM Informix Dynamic Server
---------------------------
- Invocation of Canonical functions other then Avg, Count, Max, Min, StDev, Sum, BitWiseAnd, BitWiseOr, BitWiseNot, BitWiseXor, Abs, Ceiling, Floor, Round, Concat, Left, Length, LTrim, Replace, Right, RTrim, Substring, LoLower, ToUpper, Trim, CurrentDateTime, Day, Month, Year is not supported.
- An exception similar to "Not implemented yet" or "Syntax error" might be generated for certain queries with correlated subqueries. Some typical scenarios include: A correlated subquery with paging, AnyElement over a correlated subquery or over a collection produced by navigation, LINQ queries that use grouping methods that accept an element selector (example below), A query that has a DEREF construct over a REF construct etc. Example:
1) var query = from p in context.Products
group p by p.Category.CategoryID into g
select new
{
g.Key,
ExpensiveProducts = from p2 in g
where p2.UnitPrice > g.Average(p3 => p3.UnitPrice)
select p2
};
IBM UniVerse and UniData (U2) Data Servers
------------------------------------------
- EDM Tools and the Entity Designer is not supported.
Due to U2 SQL engine limitations, the following features of LINQ to Entity are not supported in U2:
- Group
- Skip
- Functions, such as TRIM, LEFT, RIGHT, DIFFERENCE, etc
- Except
- Intersect
- Concat *
- Union with Distinct
- OrderBy with FK Collection
- Instead of Concat, use Union
Since we cannot set the properties viz: Table type, filtering etc. which is very important to implement LINQ with this database, we have to revert back and look for some other options. Whats the use of bringing us to such an extend if the final result cannot be obtained.
The default table selected is T-Type which is not of enough use, we need P-Type of table to bind it to our entity-data model, the limitation leaves us no-where!
I expect the solution for this, soon.