Tôi đang cố gắng sử dụng ToUpperInvariant()
trong một truy vấn LINQ với RavenDB. Tôi nhận được một InvalidOperationException:RavenDB LINQ Thao tác không hợp lệ .ToUpperInvariant()
Không thể hiểu làm thế nào để dịch server.Name.ToUpperInvariant().
Truy vấn bên dưới. Điều gì cần phải xảy ra để tôi có thể khớp với tên ở đây? Điều này có thể trong một truy vấn bằng RavenDB không?
public ApplicationServer GetByName(string serverName)
{
return QuerySingleResultAndCacheEtag(session => session.Query<ApplicationServer>()
.Where(server => server.Name.ToUpperInvariant() == serverName.ToUpperInvariant()).FirstOrDefault())
as ApplicationServer;
}
protected static EntityBase QuerySingleResultAndCacheEtag(Func<IDocumentSession, EntityBase> func)
{
if (func == null) { throw new ArgumentNullException("func"); }
using (IDocumentSession session = Database.OpenSession())
{
EntityBase entity = func.Invoke(session);
if (entity == null) { return null; }
CacheEtag(entity, session);
return entity;
}
}
Ok, tuyệt, tôi đang cố gắng so sánh bằng cách chuyển sang chữ hoa và điều đó thậm chí không cần thiết. Tôi chỉ thử nó mà không cần chuyển đổi và nó hoạt động. Cảm ơn bạn! –
Cảm ơn bạn! Tôi đã cố gắng làm điều tương tự; không biết gì về điều này. Doh. – Darryl
Đã mong đợi "ngôn ngữ lập trình như" hành vi so sánh quá và chạy vào cùng một vấn đề. Tôi đoán tôi nên có dự kiến "Cơ sở dữ liệu như" so sánh mà thường là bỏ qua trường hợp theo mặc định. Cảm ơn! –