实体框架 4 中的唯一键

2024-03-20

现有的数据库模式具有唯一的非主键以及一些依赖它们的外键。

是否可以在 Entity Framework v4 中定义唯一键(不是主键)?如何?


实体框架6.1现在支持数据注释和 Fluent API 的唯一性。

数据注释 (参考 http://msdn.microsoft.com/en-us/data/jj591583#Index)

public class MyEntityClass
{ 
    [Index(IsUnique = true)]
    [MaxLength(255)] // for code-first implementations
    public string MyUniqueProperty{ get; set; } 
}

流畅的API (参考 http://msdn.microsoft.com/en-us/data/jj591617.aspx#PropertyIndex)

public class MyContext : DbContext
    {
        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            modelBuilder 
                .Entity<MyEntityClass>() 
                .Property(t => t.MyUniqueProperty) 
                .HasMaxLength(255) // for code-first implementations
                .HasColumnAnnotation( 
                    "Index",  
                    new IndexAnnotation(new[] 
                        { 
                            new IndexAttribute("Index") { IsUnique = true } 
                        })));
        }
    }
}

您必须应用索引并将 unique 属性设置为 true。默认情况下,根据文档,索引是非唯一的。

此外,您还必须在项目中安装 Entity Framework 6.1 NuGet 包才能使用新的索引 API。

关于代码优先实现的注意事项:AVARCHAR(MAX)不能是唯一约束的一部分。您必须以数据注释或 Fluent API 的形式指定最大长度。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

实体框架 4 中的唯一键 的相关文章

  • LINQ:根据列值选择重复行

    我试图在我的 DataGrid 中显示那些共享相同列值的行 例如 对于具有相同姓氏的人 我尝试了以下方法 dataGrid ItemsSource dataContext Addresses GroupBy a gt a SurName W
  • 使用模型优先方法时如何播种数据?

    所以我正在学习MVC3和EF4 我尝试了代码优先方法 但它对我来说太混乱了 我可以毫无问题地创建类 但最困难的部分是处理外键和彼此之间的关系 但我首先选择了模型 这样我就可以直观地设计它并查看关系在哪里 创建模型后 它会为我创建一个 SQL
  • 如何使用SQL Server CE的动态连接字符串?

    我在 Windows 应用程序中使用 SQL Server CE 4 0 并使用实体框架创建它的模型 它工作正常 但我的问题是它没有构造函数来更改连接字符串 并且默认情况下它从app config file using var Contex
  • EF6 代码优先:如何在启动时从 EDMX 文件加载 DbCompiledModel?

    我想通过将 DbCompiledModel 缓存到磁盘来减少 EF6 中的启动时间 为 DbContext 编写 EDMX 文件很容易 EdmxWriter WriteEdmx myDbContext XmlWriter Create C
  • C# Winform(实体框架)- 将数据绑定 DataGridView 或 BindingSource 转换为 DataTable

    我正在使用 C Winforms 和实体框架 我的项目基于此链接建模 与 WinForms 的数据绑定 https msdn microsoft com en us data jj682076 aspx 我的问题是如何转换DataGridV
  • 使用 EntityFramework 使用空参数值调用存储过程

    我在 sqlserver 2008 上有一个存储过程 其中一个参数接受空值 我不知道如何使用参数上的空值来调用该 SP 为了获得更多上下文 我正在使用 EntityFramework 6xx 在下一个示例中 参数 status Compat
  • 如何包装实体框架以在执行前拦截 LINQ 表达式?

    我想在执行之前重写 LINQ 表达式的某些部分 我在将重写器注入正确的位置时遇到问题 实际上根本没有 查看实体框架源代码 在反射器中 它最终归结为IQueryProvider Execute在 EF 中 它通过以下方式耦合到表达式Objec
  • 将列添加到 ASP.NET Identity 中的 AspNetUserClaims

    我在用着Microsoft AspNet Identity Core 2 2 1在我的解决方案中 我需要将其与另一个应自动添加声明的系统集成 为了跟踪哪些声明是手动添加的以及哪些是由外部系统创建的 我希望在我的AspNetUserClaim
  • 实体框架获取前 10 行

    我在 SQL 数据库中有 3 个表 tbl视频 VideoID int PK Title varchar 100 Decription varchar 100 tblTags TagID int PK TagText varchar 100
  • 实体框架中的嵌套查询

    我收到以下异常 不支持嵌套查询 操作 1 案例 操作 2 收集 通过这个查询 var Games context Games Select a gt new GameModel Members a Type 1 a UsersInGames
  • 实体框架 CTP 4 - 代码优先自定义数据库初始值设定项

    我想实现自定义数据库初始化策略 以便我可以生成数据库架构并使用提供的用户 ID 和密码将其应用到现有的空 SQL 数据库 不幸的是 内置策略无法提供我正在寻找的内容 The default strategy creates the DB o
  • FindAsync 很慢,但是延迟加载很快

    在我的代码中 我曾经使用加载相关实体await FindAsync 希望我能更好地遵守 C 异步指南 var activeTemplate await exec DbContext FormTemplates FindAsync exec
  • ASP.NET MVC 4,迁移 - 如何在生产服务器上运行“更新数据库”

    我可以使用包管理器在本地运行 update database verbose 可能是一个愚蠢的问题 但我无法在线找到它 一旦我的网站部署 我如何在服务器上手动运行它 其次 您会推荐哪些其他策略来将数据库迁移部署到生产环境 以及它们如何更好
  • VS2012 中的实体框架问题 - 重命名属性不粘

    我试图在 VS2012 中创建一个新项目 其中包含管理 MVC4 项目 网站 MVC4 项目和通用实体框架 dll 项目 我使用了现有的数据库并从中生成了我的实体 我更新了一些关系属性的名称并保存 然后 我将对实体框架项目的引用添加到我的两
  • .NET 3.5 中的实体框架延迟加载

    由于服务器限制 我仅限于 Net 3 5 我使用 Linq to SQL 进行延迟加载 但后来切换到实体框架 L2E 在 3 5 中没有延迟加载 而 L2S 有 有没有办法以某种方式重新生成模板来实现这一目标 您必须在 EF 1 NET 3
  • 如何让实体框架初始化新创建的实体上的集合?

    我正在尝试用一些测试数据来种子我的数据库IDatabaseIntialiser像这样 protected override void Seed BlogDataContext context
  • 如何将存储过程中的值返回到 EF

    我试图通过 EF 调用存储过程并从存储过程中检索返回值 我用过this https stackoverflow com questions 6861737 executesqlcommand with output parameter an
  • EF - 从自动迁移转向手动迁移

    结束了漫长的一天测试各种场景 我不必重新创建生产数据库 我们从 EF 开始 在开发过程中没有足够明智地从自动迁移转向命名迁移 现在 我正在尝试倒带时钟 并创建与生产数据库一致的初始迁移 是否可以将模型与迁移表中的自动迁移进行对齐 我应该创建
  • EF数据库首先如何针对数据库更改更新模型?

    在班级图书馆Ado net Entity Data Model已生成 POCO 类 这些是第一次生成的 但数据库更改并未得到反映 在edmx图表右键单击并选择Update Model from Database显示新创建的表 但即使选择添加
  • 如何将字符串解析为 UNIQUEIDENTIFIER?

    我正在编写一个实体框架 LINQ 查询 其中我想将字符串解析为 UNIQUEIDENTIFIER 又名 GUID 作为WHERE clause public IEnumerable

随机推荐

  • Android 中的对象 XML 映射

    我正在开发一个基于客户端 服务器模型的应用程序 其中客户端在 Android 中 服务器在 PHP 中 我想将产品信息 例如名称 价格 说明 从客户端传输到服务器 我已读过编组 解组或序列化它可以实现 但所有教程和示例都是用 Java 编写
  • 业务逻辑层

    我正在使用 ASP NET 和 Telerik 控件 v2009 q2 来编程数据驱动的应用程序 我有一个名为 BLL 的类 它包含 几乎仅 静态类 这些类返回不同的对象 并以一些 id 作为参数 通常以列表形式返回对象组 我的问题是 总是
  • 两个日期范围之间有多少相等的天数,SQL

    我有包含日期 范围的表格 如下所示 DATE DATE2 14 03 2013 17 03 2013 13 04 2013 02 05 2013 我必须创建一个过程 返回等于两个日期范围的天数 一个在表中 另一个在表中 例如 我在表中的日期
  • g++ 版本 4.0.0.8 和 4.3.2 之间有什么区别?

    g 4 0 0 8 和 g 4 3 2 有什么区别 这两个是我在各种编程竞赛中见过的最常用的 C 编译器 我尝试用谷歌搜索 但一无所获 考虑到您对两者之间的 C 变化感兴趣 这实际上并不是一个 巨大的列表 4 0 0 8 只是 4 0 的补
  • 没有身份的 Cookie Asp.net core

    我目前正在开发一个不使用身份的项目 问题是这个项目应该有一个记住我的选项 允许用户自动重新连接到网站 我的问题是我找不到任何完整的教程来创建没有身份的 cookie 如果有人有很好的代码示例或教程 Thanks 在我的项目中 我使用 Ang
  • 您如何使用 TDD 来划分班级?

    我觉得自己对TDD相当熟练 甚至在公司里被认为是 TDD专家 但尽管如此 还是有一些情况我觉得不知道如何正确处理 所以我想听听别人的意见 我的问题如下 尽管一般来说 TDD 帮助我思考类的核心职责 并将所有其他职责提取到依赖类中 但有些情况
  • int 和 double 的均匀随机分布“基类”?

    我正在尝试创建一个用随机数填充列表的函数 并根据列表项的类型生成整数或浮点数 到目前为止 我已经想出了以下代码 并且它有效 template
  • Laravel 中使用 try 和 catch 进行错误处理 [重复]

    这个问题在这里已经有答案了 我想在我的应用程序中实现良好的错误处理 我强制使用此文件来捕获错误 应用 服务 PayUService try this gt buildXMLHeader Should be this gt buildXMLH
  • iOS 检测系统音量变化。私有 API 与否? AVSystemController_SystemVolumeDidChangeNotification

    可以听AVSystemController SystemVolumeDidChangeNotificationNSNotification 是否被视为 在 App Store 审核过程中 使用私有 API 在我的应用程序中 我需要显示和更新
  • MySql 中是否有用于添加列的“IF NOT EXISTS”子句?

    我需要在一些数据库上运行这个 MySql 代码 我怀疑其中一些数据库已经有了这个专栏 有没有类似的东西if not exists对于下面的代码 ALTER TABLE comments ADD COLUMN active int 1 NOT
  • Google Maps API V3 使用限制是每个网站访问者还是每个网络服务器?

    我对每天 2500 个地理编码请求的 API 使用限制是否感到困惑 http code google com apis maps documentation geocoding Limits http code google com api
  • 显示字段上内联 AJAX 调用的验证错误

    当 AJAX 调用返回验证失败时 我试图在字段 内联 上显示错误消息
  • 如何构造动态变量NAMES?

    我想循环数据 并创建动态地图 稍后可以将更多数据推入其中 例如 foreach item in bob john andy set item map end 这样以后我就可以这样做 bob map put foreach count som
  • 测试浏览器是否支持该样式

    我可以执行以下操作来检查浏览器是否不支持列计数 css3 属性 然后使用我自己的代码 if WebkitColumnCount in document body style MozColumnCount in document body s
  • 远程更新Jenkins“系统消息”字符串的方法?

    有没有办法远程插入 更新 Jenkins 系统消息 显示在屏幕顶部的实例描述 我们通过 API 部署 Jenkins 作业 并希望能够一目了然地知道部署了哪些版本的作业 没有用于修改系统消息的API 该值只能由配置窗口 https gith
  • NHibernate + ASP.NET + 在视图中打开会话 + L2Cache

    我正在使用 CodeProject 的众所周知的Open Session in View处理 NHibernate 会话 它能很好地与Level 2 Cache 有人成功做过吗 我应该使用NH Burrow反而 任何有关 ASP NET 最
  • 设置 hadoop 时 SSH 出现问题

    我是hadoop的新手 我在计算机上安装了Ubuntu 12 10 我想在一个节点上以伪分布式模式安装Hadoop 我搜索并获得了很多教程 但我在SSH方面遇到了问题 我做了什么教程说 我确信问题出在 SSH 上 我得到了 openssh
  • 如何随着方向的变化包含android计时器的值[重复]

    这个问题在这里已经有答案了 我正在构建一个简单的计时器应用程序 其中我使用 android 计时器来跟踪经过的时间 但是当我启动计时器并将方向更改为横向时 计时器会重置并再次显示 00 00 我希望它保持其价值 布局为portrait an
  • ImageView 中的动画scaleType =“centerCrop”

    有没有办法对scaleType centerCrop 进行动画处理 我需要将图像缩放到 certerCrop 以便图像可以覆盖 imageView 的整个区域 但我需要对其进行动画处理 以便在缩放图像之前向用户展示图像的实际外观 我打算这样
  • 实体框架 4 中的唯一键

    现有的数据库模式具有唯一的非主键以及一些依赖它们的外键 是否可以在 Entity Framework v4 中定义唯一键 不是主键 如何 实体框架6 1现在支持数据注释和 Fluent API 的唯一性 数据注释 参考 http msdn