我一直在寻找Lucene.NET的分面搜索,我在这里找到了一个很好的例子,它解释了一个相当大的数量,除了它完全忽略了检查位数组中项目基数的功能.
任何人都可以告诉我它正在做什么吗?我不理解的主要问题是为什么bitsSetArray按原样创建,它用于什么以及所有if语句如何在for循环中工作.
这可能是一个很大的问题,但我必须先了解它是如何工作的,甚至可以考虑在我自己的代码中使用它.
谢谢
public static int GetCardinality(BitArray bitArray)
{
var _bitsSetArray256 = new byte[] {0, 1, 1, 2, 1, 2, 2, 3, 1, 2, 2, 3, 2, 3, 3, 4, 1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5, 1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5, 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, …Run Code Online (Sandbox Code Playgroud) 我刚刚被这个问题困住了一个小时,我最终烦恼地发现了这个问题.
情况
我有一个用户将字符串作为主键的表,该表具有各种多对一和多对多的关系.
当从表中搜索多个项目时,所有关系都被带回.但是每当我试图通过主键(字符串)获取对象时,它都没有带回任何关系,它们总是设置为0.
部分解决方案
所以我查看了我的日志,看看SQL正在做什么,并返回正确的结果.所以我以各种随机的方式尝试了各种各样的东西,最终得出结论.传递给get方法的字符串的情况与数据库中的情况完全不同,所以当它试图将关系项与主实体匹配时它什么都没找到(或者至少NHIbernate不是因为正如我上面所述,SQL实际上返回了正确的结果)
真正的解决方案
还有其他人遇到过这个吗?如果是这样,在将SQL结果与实体匹配时,如何告诉NHibernate忽略大小写?这很愚蠢,因为它之前的工作非常好,突然间它开始关注字符串的情况.
我在获取正确标记的简单URL时遇到问题,以便您可以按预期进行搜索.
我正在使用StandardAnalyzer 索引" http://news.bbc.co.uk/sport1/hi/football/internationals/8196322.stm "并将字符串标记为以下(调试输出):
(http,0,4,type=<ALPHANUM>)
(news.bbc.co.uk,7,21,type=<HOST>)
(sport1/hi,22,31,type=<NUM>)
(football,32,40,type=<ALPHANUM>)
(internationals/8196322.stm,41,67,type=<NUM>)
Run Code Online (Sandbox Code Playgroud)
一般来说它看起来不错,http本身,然后主机名,但问题似乎与正斜杠.当然它应该把它们视为单独的词?
我需要做些什么才能纠正这个问题?
谢谢
PS我正在使用Lucene.NET,但我真的不认为这对答案有很大影响.
我通常会尝试将所有相关实体保存在同一个存储库中.以下是两者之间具有关系的实体(标有缩进):
因此,进入用户存储库是有意义的.但是,用户通常会链接到许多不同的实体,您将在以下示例中执行哪些操作?
用户
订购
订单与产品和用户都有关系,但您不会将所有4个实体的功能放在同一个存储库中.当您处理用户实体并收集订单信息时,您会怎么做?您可能需要有关产品的额外信息,并且ORM通常会提供延迟加载的功能.但是,如果您的产品实体位于用户实体的单独存储库中,那么这肯定会导致存储库之间发生冲突吗?
.net c# design-patterns domain-driven-design repository-design
我刚刚开始使用NHibernate和流畅的NHibernate,我认为这很棒.我一直在配置我的所有映射,以便为类之间的任何关系使用LazyLoading,因为通常我发现不必提前加载所有内容.但是,有时您会100%知道您将加载所有关系或至少一个关系,如果您预先获得数据,它将保存额外的连接.
无论如何,你可以告诉NHibernate加载关系的关系数据并覆盖初始设置吗?
之前我正在使用LinqToSql,因为我会创建一个存储库,这些存储库会在需要时将哪些项加载到哪些关系中.这非常有效,所以我想要NHibernate类似的东西.
我正在使用web api构建一个API,当收到发布的值并将它们绑定到我的模型时,我得到的错误似乎不合适.
我有一个简单的模型如下:
public class Client
{
[ScaffoldColumn(false)]
[JsonIgnore]
public int ClientID { get; set; }
[Required, StringLength(75)]
public string Name { get; set; }
[Required]
public bool Active { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
将此模型发送到我的控制器上的post方法时
public object Post([FromBody]Client postedClient)
Run Code Online (Sandbox Code Playgroud)
它通过x-www-form-urlencoded格式化程序,但它抛出:
Property 'Active' on type 'CreditSearch.Api.Models.Rest.Client' is invalid. Value-typed properties marked as [Required] must also be marked with [DataMember(IsRequired=true)] to be recognized as required. Consider attributing the declaring type with [DataContract] and the property with [DataMember(IsRequired=true)].
Run Code Online (Sandbox Code Playgroud)
我也试过它以json格式发送相同的数据,但我得到了相同的结果.我试图添加这些属性只是为了让代码工作,但Resharper和我自己找不到正确的引用.即便如此,我也不愿意在普通的MVC系统中验证之前不需要添加这些多余的属性.
作为标题真的,我在我的代码的一部分,我想调用已添加到Button.Click处理程序的任何方法.
我怎样才能做到这一点?