草庐IT

CSS优先级

全部标签

c# - 以编程方式创建代码优先迁移

我在一个项目中,我们在EntityFramework上为我们的数据库使用CodeFirst。我们希望更改我们所有的持续集成以在下游使用生成的MSI包,但使用EF会带来一些复杂情况。当模型发生变化时,我们必须生成一个基于代码的迁移,否则包将被破坏(数据库与模型)我们更愿意从团队中删除迁移的创建(基于https://msdn.microsoft.com/en-us/data/dn481501.aspx)我已经尝试了来自网络的各种方法,但大多数似乎都需要将AutomaticMigrations设置为true以及AutomaticMigrationDataLossAllowed(请参阅:htt

c# - 如果扩展方法与密封类中的方法具有相同的签名,调用优先级是多少?

我正在阅读C#3.0中的扩展方法。我正在阅读的文本暗示,与被扩展类中的方法具有相同签名的扩展方法将在执行顺序中排在第二位——也就是说,密封类中的方法被调用。如果是这种情况,您如何扩展密封类? 最佳答案 事实上,actual方法优先于扩展方法。并且为了清楚起见-“执行顺序”表明两者都可能被调用;只有原始方法会被调用。也许选择另一个名字/签名;如果这是你的意图,你不能使用扩展方法来猴子补丁。如果有一些基类/接口(interface)(类型实现的)没有有这个方法,你也许可以把它投到那里......?

c# - 一个 DbSet 的 EF 代码优先 PluralizingTableNameConvention

如何仅为单个表/DbSet切换此约定PluralizingTableNameConvention?据我所知,我只能对给定DbContext的所有DbSets执行此操作 最佳答案 如果只有一个实体映射到非复数形式的表,则可以删除PluralizingTableNameConvention并手动配置实体的表名称。publicclassMyContext:DbContext{protectedoverridevoidOnModelCreating(DbModelBuildermodelBuilder){base.OnModelCreati

c# - 代码优先迁移 - Entity Framework - 无法向表中添加列

这个问题已经在SO上以不同的方式被问过很多次。我已经完成了所有的答案并且浪费了很多时间。我似乎无法正常工作。我一直在研究asp.netmvcEntityFramework、SQL服务器应用程序。我已经有一个现有的数据库、表等,一切正常。我只需要在表中添加一个新列。所以..我在模型类中添加了一个属性,以便我可以将列添加到表中。但没有成功。所以我按以下顺序执行这些步骤。在我的模型类中添加字段。[Required]publicstringEmailSubject{get;set;}然后我删除了我的asp.netmvc项目中包含Configuration.cs类的文件夹Migrations然后

c# - EF 代码优先 : DropCreateDatabaseIfModelChanges doesn't work

我在我的Global.asax中使用以下代码:DbDatabase.SetInitializer(newDropCreateDatabaseIfModelChanges());但是好像不行。尽管我的模型已更改并且我正在尝试使用其中一个新添加的表,但它只是说找不到该表。Invalidobjectname'dbo.TableName'.但是,如果我运行它,它似乎可以工作,并且正在创建表:DbDatabase.SetInitializer(newDropCreateDatabaseAlways());它确实更新了我的数据库。我做错了什么? 最佳答案

c# - EF4 代码优先 : how to add a relationship without adding a navigation property

我应该如何在不使用任何导航属性的情况下使用CodeFirst来定义关系?之前,我通过在关系的两端使用导航属性来定义一对多和多对多。并在数据库中创建适当的关系。这是类外观的精简版本(为简单起见,我已将多对多关系转换为一对多)。publicclassUser{publicstringUserId{get;set;}publicstringPasswordHash{get;set;}publicboolIsDisabled{get;set;}publicDateTimeAccessExpiryDate{get;set;}publicboolMustChangePassword{get;set

c# - 无法使用 migrate.exe 运行代码优先迁移

我正在尝试更新测试系统上的数据库。当我运行update-database在visualstudio中,事情按预期工作。当我部署然后尝试在测试机器上运行时:Migrate.exeCodeFirst.dll/startupConfigurationFile="..\web.config"我得到:noconnectionstringnamedxxxcouldbefoundintheapplicationconfigfile...即使在web.config中有一个具有该名称的连接字符串。只有一个.config文件,没有我正在运行的dll的配置文件我试图手动声明我的连接字符串:Migrate.e

c# - 使用代码优先模型的 "Composable"全文搜索

更新2013年9月18日看起来没有简单的方法可以做到这一点。我坚持寻求涉及对EntityFramework进行一些扩展的解决方案。如果您想在EntityFramework中看到这些功能,请在uservoicesite上为它们投票,也许here和hereSO上有几个类似的问题,但我找不到新的和足够相似的问题来获得我正在寻找的答案。如果这看起来像是信息过载,请跳转到摘要。背景我正在编写WebApiREST服务以通过OData端点公开一些预先存在的数据。我正在使用EntitySetContoller为我完成所有繁重的工作。以及standardODataparameters,由基类路由和翻译,

c# - EF4.1 代码优先 : How to disable delete cascade for a relationship without navigation property in dependent entity

假设我有这两个非常基本的实体:publicclassParentEntity{publicintId;publicvirtualICollectionChildrens;}publicclassChildEntity{publicintId;publicintParentEntityId;//ForeignKeypublicvirtualParentEntityparent;//[NOTWANTED]}出于某些原因,我不希望ChildEntity保留对其父项的引用。我只希望它保留ParentEntityid但仅此而已。到目前为止,没问题,我只是删除了[NOTWANTED]行,一切都按预

c# - 带有存储过程的代码优先 Entity Framework 从复杂的全文搜索返回结果

我正在为以下场景寻找设计建议:我有一个代码优先的EF5MVC应用程序。我正在构建一个全文搜索功能,它将合并来自许多表的多个加权列。由于我无法使用这些表(其中一些包含文本/二进制列)的索引创建View,因此我创建了一个存储过程,它将输出我的对象的ID(例如PersonID)和根据搜索词对与该对象关联的排名。我目前的方法是创建一个辅助类来执行全文搜索,它调用存储过程并根据返回的ID从上下文中加载所有对象。我的问题是:我的方法是否合理/遵循合理的最佳实践?有没有其他人做过类似的事情并吸取了教训?有没有一种方法可以更有效地做到这一点(即让存储过程的结果直接返回/映射到实体而不需要额外的查找?)