У меня есть простой запрос LINQ, выполняющийся поверх Entity Framework (v1) и указывающий на SQL Server Compact v3.5 SP2 (8085):
var myResults = (from m in myContext.MyData
join o in myContext.SomeOtherData on new { m.ID, Name = myNameVariable } equals new { o.ID, o.Name }
select m).ToArray();
Приведенный выше запрос завершится ошибкой:
Указанное значение аргумента для
функция недействительна [Аргумент № =
1, имя функции (если известно) = isnull
]
Если я изменю запрос, просто заменив myNameVariable жестко запрограммированной строкой, он будет работать. Например:
var myResults = (from m in myContext.MyData
join o in myContext.SomeOtherData on new { m.ID, Name = "SomeNameValue"} equals new { o.ID, o.Name }
select m).ToArray();
Что здесь происходит? Я на 100% уверен, что myNameVariable имеет допустимую строку. Это определенно не ноль.