小编Rob*_*ell的帖子

实体框架LINQ不包含不区分大小写

我有一些'撕掉我的头发' - 实体框架的问题,我找不到解决方案.

我想要做的是比较我在服务器上运行的搜索功能的字符串.它基本上是:collection.Where(c => c.Name.Contains(searchTerm));其中searchTerm是用户传递的字符串.

到处都看,它是:

  1. 使用toUpper()更改两个字符串,或

  2. 将排序规则设置为不区分大小写.

然而,这些都不适用于我的情况.这是一个类似的问题没有答案:实体框架 - 不区分大小写包含?

使用第一个替代方法将导致获取数据库中的每一行,然后执行toUpper(),以查看它是否匹配.这在性能方面是不可接受的.

第二种方法似乎更有可能是一种有效的解决方案,但由于某些原因不起作用.我有两个数据库.一个本地和一个远程.远程MSSQL数据库设置为排序规则:Finnish_Swedish_CI_AS,这意味着它不区分大小写?本地数据库是一个自动生成的localDB,其属性"Case Sensitive"设置为False.

无论我使用它的这两个数据库中的哪一个,对用户来说仍然总是区分大小写.

有人可以解释为什么会这样,所以我可以继续我悲惨的生活吗?

亲切的问候,罗宾多尔贝尔

c# linq sql-server asp.net-mvc entity-framework

9
推荐指数
2
解决办法
2万
查看次数

自动增量属性不是键

是否可以自动增加不是实体框架中主键的属性?我所拥有的是一个具有ID但也是序列号的类:

public class Maintenance
{
    [Key]
    public int ID { get; set; }
    public int GroupID { get; set; }
    public int SerialNo { get; set; } 
}
Run Code Online (Sandbox Code Playgroud)

我有一个索引,GroupID并且SerialNo具有唯一的关系,使得组不可能具有两次相同的序列号.

什么我目前做的是检查.Max()SerialNo该组中.如果序列号自动递增,我会喜欢它.这可能吗?

我一直在寻找解决方案,但据我所知,它不可能有2个自动递增列与实体框架,并且自动递增列将始终是PK列.

有没有办法设置自动增量,还是有比使用更好的问题解决方案Max()Max()理论上,使用可能会产生两个相同的值,并且会在尝试插入时导致程序崩溃(因为唯一索引).

我先使用代码.

澄清一下:我想将ID保留为主键,并在插入时计算序列号.

更新:

我已经尝试使用[DatabaseGenerated(DatabaseGeneratedOption.Identity)]SerialNo,这导致想改变主键此属性的实体框架.我也试过[DatabaseGenerated(DatabaseGeneratedOption.Computed)],试图在SerialNo列中插入NULL ,并[DatabaseGenerated(DatabaseGeneratedOption.None)]尝试插入0,基本上做"什么都没有".

要求的信息:

这是表格外观的一个示例:

|_ID_|_GroupID_|_SerialNo_|
|  1 |    1    |    1     |
|  2 |    1    |    2     |
|  3 |    2 …
Run Code Online (Sandbox Code Playgroud)

c# entity-framework ef-code-first

6
推荐指数
1
解决办法
4150
查看次数

MVC Razor Html.Partial子模型

关于MVC Razor中的部分视图我有一个问题.任何帮助都非常受欢迎,这很可能是我错过的东西,但是在搜索时我找不到任何重复同样问题的东西.

所以我将视图绑定到视图模型.

public class Person
{
    public string Name { get; set; }

    public virtual ContactInformation ContactInformation { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

然后我有一个部分的视图来呈现联系信息模型.

<div>
    @Model.Name
</div>
<div>
    @Html.Partial("_ContactInformation", Model.ContactInformation)
</div>
Run Code Online (Sandbox Code Playgroud)

但是,"_ContactInformation"视图name<input>s 的属性中没有ContactInformation而呈现

通常razor将name属性绑定到类似:name ="ContactInformation.Address".但由于它是部分的,它被呈现为name ="Address".

我错过了什么或这是它的工作方式吗?

c# asp.net-mvc razor asp.net-mvc-4

0
推荐指数
1
解决办法
1606
查看次数