我是RavenDB的新手,我在這裏遇到了一個條件。基本上這是我想要的。我有一份員工列表在RavenDB,我需要獲取員工誰是類型爲「合同」。我試圖用基本的LINQ查詢的不是,但我無法來解決這個問題,因爲我歌廳,如「法不支持」和「異常不能懂得如何翻譯...等「。如何在RavenDB中搜索對象集合中的「不包含」條件
這是我現在已經嘗試過,直到現在。
class Program
{
static void Main(string[] args)
{
using (var documentStore = new DocumentStore() { ConnectionStringName = "RavenDBConnectionString" })
{
documentStore.Initialize();
/* using (var session = documentStore.OpenSession())
{
session.Store(new User { Id = 1, Roles = new List<Role> { new Role { Type = UserType.Contract }, new Role { Type = UserType.Developer } } });
session.Store(new User { Id = 2, Roles = new List<Role> { new Role { Type = UserType.Permanent }, new Role { Type = UserType.Developer } } });
session.Store(new User { Id = 3, Roles = new List<Role> { new Role { Type = UserType.SeniorDeveloper }, new Role { Type = UserType.Manager } } });
session.Store(new User { Id = 4, Roles = new List<Role> { new Role { Type = UserType.Contract }, new Role { Type = UserType.SeniorDeveloper } } });
session.Store(new User { Id = 5, Roles = new List<Role> { new Role { Type = UserType.Permanent }, new Role { Type = UserType.Manager } } });
session.Store(new User { Id = 6, Roles = new List<Role> { new Role { Type = UserType.Contract }, new Role { Type = UserType.Developer } } });
session.SaveChanges();
}*/
using (var session = documentStore.OpenSession())
{
//var nonContractEmployees = session.Query<User>().Where(x => !x.Roles.Exists(y => y.Type == UserType.Contract)).ToList();
var nonContractEmployees = session.Query<User>().Where(x => x.Roles.Count(y => y.Type == UserType.Contract) == 0).ToList();
// var nonContractEmployees = session.Query<User>().Where(x => !x.Roles.Contains(x.Roles.FirstOrDefault(y => y.Type == UserType.Contract))).ToList();
//var nonContractEmployees = session.Query<User>().Where(x => x.Roles.FirstOrDefault(y => y.Type == UserType.Contract) == null).ToList();
}
}
}
}
public class User
{
public int Id { get; set; }
public List<Role> Roles { get; set; }
}
public class Role
{
public UserType Type { get; set; }
}
public enum UserType
{
Manager,
Permanent,
Contract,
Developer,
SeniorDeveloper
}
如果有人能夠幫助我解決這個問題,我真的很喜歡它。
感謝,
卡皮爾
@PranayRana:沒有這些查詢的工作對我來說 – wizzardz
試用谷歌羣體。我確信有一種解決方法,但我也很難。 https://groups.google.com/forum/?fromgroups#!forum/ravendb –