SqlServerCompact 4.0 无法在 WPF App 中使用 entity framework 的所有功能

SqlServerCompact 4.0 cannot use all features of entity framework in WPF App

我在我的 WPF 应用程序中使用 EntityFramework.SQLServerCompact nuget 包。

它确实部分起作用,例如:

确实如此 运行 ToList()

它没有 运行 Where() 查询,它显示了这个异常:

SqlCeException: The specified argument value for the function is not valid. [ Argument # = 3,Name of function(if known) = case ]

当我 运行 以下查询时:

_db.Users.Where(x => x.Email == email_input.Text.ToString() && x.Password == password_input.Password.ToString())

它 运行 的查询是:

SELECT 
    [Extent1].[Id] AS [Id], 
    [Extent1].[Name] AS [Name], 
    [Extent1].[Email] AS [Email], 
    [Extent1].[Phone] AS [Phone], 
    [Extent1].[Password] AS [Password], 
    [Extent1].[CreatedAt] AS [CreatedAt]
    FROM [Users] AS [Extent1]
    WHERE ([Extent1].[Email] = (CASE WHEN (cast(@p__linq__0 as ntext) IS NULL) THEN N'' ELSE @p__linq__0 END)) AND ([Extent1].[Password] = (CASE WHEN (cast(@p__linq__1 as ntext) IS NULL) THEN N'' ELSE @p__linq__1 END))

不要在谓词中调用 ToString()。在构造查询之前尝试分配字符串:

string email = email_input.Text.ToString(); //isn't Text already a string by the way?
string pwd = password_input.Password.ToString();

var users = _db.Users.Where(x => x.Email == email && x.Password == pwd).ToArray();

请注意,SQL 服务器精简版已被弃用。