热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

EF是否可以使用阴影属性创建Mutli-column索引?

如何解决《EF是否可以使用阴影属性创建Mutli-column索引?》经验,为你挑选了1个好方法。

我正在尝试使用shadow属性创建多列唯一索引。我知道我可以通过添加属性来解决此问题,但是我想看看是否有可能做到这一点,而不需要保持模型清洁。

要创建多列索引,您可以在Fluent API中使用以下选项:

modelBuilder.Entity().HasIndex(t => new { t.TrackNumber, t.AlbumId).IsUnique();

但是我不想用额外的AlbumId属性使我的模型混乱,因此不想使用shadow属性,对于单个列,这是可行的:

modelBuilder.Entity().HasIndex(t => EF.Property(t,"AlbumId")).IsUnique();

但是对于使用阴影属性的多列索引,如下所示

modelBuilder.Entity()
    .HasIndex(t => new { t.TrackNumber, EF.Property(t,"AlbumId")})
    .IsUnique();

我在vscode中收到以下错误

无效的匿名类型成员声明符。必须使用成员分配,简单名称或成员访问来声明匿名类型成员。

任何人都有一个想法,如何使用阴影属性来做到这一点,还是不可能?



1> Ivan Stoev..:

这是可能的。您可以通过简单地使用HasIndex重载params string[] propertyNames

首先确保阴影属性已定义:

modelBuilder.Entity()
    .Property("AlbumId");

然后定义索引:

modelBuilder.Entity()
    .HasIndex("TrackNumber", "AlbumId")
    .IsUnique();


推荐阅读
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • 本文详细介绍了Spring的JdbcTemplate的使用方法,包括执行存储过程、存储函数的call()方法,执行任何SQL语句的execute()方法,单个更新和批量更新的update()和batchUpdate()方法,以及单查和列表查询的query()和queryForXXX()方法。提供了经过测试的API供使用。 ... [详细]
  • iOS关于移动端SQLite,你想知道的都有
    一、SQLite简介SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它是D.RichardHipp建立的公有领域项目。它的设计目 ... [详细]
  • 我有一个数据库,该数据库的某些列中的字符有误(由于导入不正确),我想用适 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • 本文介绍了Redis的基础数据结构string的应用场景,并以面试的形式进行问答讲解,帮助读者更好地理解和应用Redis。同时,描述了一位面试者的心理状态和面试官的行为。 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • 有没有人用过sqlite?关于tablehasnocolumnnamedcolumn插入数据的时候报上边的错。问题是我明明有这一列。直接在sqlitedevoloper里执 ... [详细]
  • IhaveonedoubtinSqlite.dteTimeDataTypeisVarchar(200)inTablestructure.Iwanttogetresult ... [详细]
  • 州的先生(https:zmister.com)在很多项目中都有使用到SQLite数据库作为数据存储的工具,其中包括一些桌面图形界面程序和线上的Web应用程序。至今为止,它们都运行良 ... [详细]
  • Python使用SQLite1.sqlite3的安装python2.5.x以上版本默认自带sqlite3模块。2.链接sqlite3数据库```#导入sqlite3模块import ... [详细]
  • 只需在建表的时候指定类型:INTEGERPRIMARYKEYAUTOINCREMENT然后在存入数据的时候不设置其值(或设置为null)即可。如建表:[sql]viewpla ... [详细]
  • 转自:http:www.cnblogs.comzeroonep4316346.html如果一个.NET应用要自适应32位64位系统,只需要在项目的“目标平台”设置为“AnyCPU”。但是 ... [详细]
author-avatar
狼与鹰的爱_340
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有