相关疑难解决方法(0)

EF 6.1独特的可空指数

在使用Code First的EF 6.1中,您可以使用实体中的属性创建索引,或者使用以下行中的流畅API:

 Property(x => x.PropertyName)
                .IsOptional()
                .HasMaxLength(450)
                .HasColumnAnnotation("Index",
                    new IndexAnnotation(new IndexAttribute("IX_IndexName") {IsUnique = true,  }));
Run Code Online (Sandbox Code Playgroud)

是否有任何方式WHERE PropertyName IS NOT NULL可以像在SQL Server中一样以原样的方式表示脚手架(参见:https://stackoverflow.com/a/767702/52026)?

c# sql-server entity-framework ef-code-first

43
推荐指数
2
解决办法
9062
查看次数

实体框架6.1 - 使用INCLUDE语句创建索引

那么现在在最新测试版的Entity Framework 6.1中可以使用索引,是否可以在代码优先方法中创建一个与此SQL语句相同的索引?

CREATE NONCLUSTERED INDEX [Sample1]
ON [dbo].[Logs] ([SampleId],[Date])
INCLUDE ([Value])
Run Code Online (Sandbox Code Playgroud)

sql indexing entity-framework

34
推荐指数
1
解决办法
9076
查看次数

如何使用Fluent API使用ASC / DESC排序在多列上添加索引?

我有一个使用实体框架6-代码优先方法的MVC ASP.NET应用程序。

使用Fluent API,如何使用ASC / DESC排序在每列不同的多个列上添加索引?

我已经看到了许多使用多个列的示例,但是没有办法设置索引中列的排序顺序。

Table
-----
Id
Type
DateFor
DateCreated
Value
Run Code Online (Sandbox Code Playgroud)

我要在以下列上建立索引:Type(ASC),DateFor(Desc),DateCreated(Desc)。

indexing entity-framework ef-code-first entity-framework-6 ef-fluent-api

4
推荐指数
2
解决办法
5006
查看次数

如何在插入新记录时根据列值忽略多列上的唯一索引

我们有三列的表格,StudentIdSubjectIdActive(和其他一些列,但都没有涉及这个问题).

Activecolumn指示记录是否处于活动状态(Active如果有人从UI中删除记录,我们将此列设置为零)

在列索引的定义StudentId,并SubjectId为如下:

CREATE UNIQUE NONCLUSTERED INDEX [UQ_StudentSubject_SubjectId_StudentId]  
ON [dbo].[StudentSubject]
(
    [StudentId] ASC,
    [SubjectId] ASC

)WITH(
    PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB =  OFF,     
    IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS =  ON,      
    ALLOW_PAGE_LOCKS = ON
) ON [PRIMARY]

GO
Run Code Online (Sandbox Code Playgroud)

从我们的应用程序,如果我们尝试插入与此相结合的另一个记录SubjectIdstudentId插入失败和Java抛出以下错误:

引起:com.microsoft.sqlserver.jdbc.SQLServerException:无法在对象'dbo.StudentSubject'中插入具有唯一索引'UQ_StudentSubject_SubjectId_StudentId'的重复键行.重复键值为(113460,182).

组合113460,182的记录的活动为零,因此,我们尝试插入新记录而不是将活动标志设置为1.

如果我们插入一条带有subjectId和studentId的现有组合的新记录,那么我们可以在插入时忽略这个索引Active吗?

编辑 抱歉混淆,这是一个索引而非约束.

sql database sql-server database-design unique-constraint

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