相关疑难解决方法(0)

实体框架代码第一个唯一列

我正在使用Entity Framework 4.3并使用Code Fist.

我上课了

public class User
{
   public int UserId{get;set;}
   public string UserName{get;set;}
}
Run Code Online (Sandbox Code Playgroud)

在创建数据库表时,如何告诉Entity Framework UserName必须是唯一的?如果可能的话,我更愿意使用数据anotations而不是配置文件.

entity-framework data-annotations entity-framework-4.3

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

首先使用实体​​框架代码添加索引(CTP5)

有没有办法让EF CTP5在创建模式时创建索引?

更新:请参阅此处了解EF 6.1如何处理此问题(如下面的juFo所指出).

entity-framework

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

在Entity Framework 6.1(非Core)中,如何使用IndexAttribute定义聚簇索引?

实体框架6.1(代码优先)增加了通过添加索引的可能性IndexAttribute.该属性采用一个参数来指定索引应该是群集还是非群集.

同时,AFAIK,Entity Framework要求每个实体都有一个主键(用该注释KeyAttribute),并且该主键始终作为聚簇键创建.

因此,只要我的申请IndexAttributeIsClustered = true,我得到一个错误,因为由于键时,已经一个聚集索引.

那么,如何使用IndexAttribute?创建不是主键的聚簇索引?可用的IsClustered属性是IndexAttribute什么?

(有关更多上下文:我正在映射一个仅用于通过LINQ查询进行读取的表.我不需要实际插入,更新或删除该表中的实体.因此,我不需要主键理想情况下,我想要一个没有主键的表,但是有一个非唯一的聚簇索引,专为阅读而优化.)

编辑(2014-04-11):另请参阅https://entityframework.codeplex.com/workitem/2212.

c# indexing entity-framework entity-framework-6

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

EF迁移:将索引字段更改为可空时出错

我初始迁移中的代码如下

        CreateTable(
            "dbo.Sites",
            c => new
                {
                    Id = c.Int(nullable: false, identity: true),
                    Description = c.String(maxLength: 450)
                })
            .PrimaryKey(t => t.Id);
Run Code Online (Sandbox Code Playgroud)

为了使Description字段是唯一的,我将以下内容添加到UP方法的末尾

CreateIndex("dbo.Sites","Description",唯一:true);

后来我决定要求描述字段.

新迁移会产生以下更改

AlterColumn("dbo.Sites","Description",c => c.String(nullable:false,maxLength:450));

但是,当此更改尝试运行时,我收到错误

ALTER TABLE ALTER COLUMN描述失败,因为一个或多个对象访问此列.

我能够使用分析器隔离SQL行,如

ALTER TABLE [dbo].[Sites] ALTER COLUMN [描述] nvarchar NOT NULL

当我在Management Studio中运行它时,会出现以下错误

消息5074,级别16,状态1,行1索引'IX_Description'取决于列'描述'.消息4922,级别16,状态9,行1 ALTER TABLE ALTER COLUMN描述失败,因为一个或多个对象访问此列.

如何获取迁移代码以删除索引,然后更改更改列,然后重新构建索引?

我正在使用SQL Server 2008 R2

ef-migrations entity-framework-5

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

两个字段的组合必须是Entity Framework代码中唯一的第一种方法.怎么会这样?

我有两个班级联系人和小组

组合FirstNameLastName必须是唯一的,可以为单个联系人添加多个地址.我如何才能在实体框架代码第一种方法中做到这一点?

public class Contacts
{
    [Key]
    public int ContactID { get; set; }
    [ForeignKey("Group")]
    public int GroupID { get; set; }
    [Required]
    public string FirstName { get; set; }
    [Required]
    public string LastName { get; set; }
    [Required]
    public string Address { get; set; }
    [Required]
    public string Number { get; set; }
    [Required]
    [EmailAddress]
    public string EmailId { get; set; }
    [DataType(DataType.Date)]
    public DateTime CreateDate { get; set; }
    public DateTime? ModifiedDate { get; …
Run Code Online (Sandbox Code Playgroud)

entity-framework

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