Entity Framework 6 по умолчанию имеет значение последовательный GUID вместо полностью случайных. Как отключить это?Entity Framework 6: Отключить последовательные GUID
См CodePlex элемент работа: http://entityframework.codeplex.com/workitem/71
Entity Framework 6 по умолчанию имеет значение последовательный GUID вместо полностью случайных. Как отключить это?Entity Framework 6: Отключить последовательные GUID
См CodePlex элемент работа: http://entityframework.codeplex.com/workitem/71
От changeset связанных с этой работой пункта, вы увидите, что GuidColumnDefault
не основана на каких-либо настройках, а просто возвращает значение по умолчанию, основанное на типе поставщика
Глядя на эту link, казалось бы, вы можете установить его вручную в вашей миграции, хотя:
// Excerpt from migration in link above:
public override void Up()
{
CreateTable(
"dbo.Items",
c => new
{
Id = c.Guid(nullable: false,
identity: true,
// You would use newid() instead.
defaultValueSql: "newsequentialid()"),
})
.PrimaryKey(t => t.Id);
}
Если это возможно в миграции, делает MODELBUILDER (OnModelCreating) possi bly обеспечивают аналогичную функциональность? – Alex
К сожалению, это маловероятно. Это больше связано с миграцией, поскольку модель связана с отношениями между сущностями, а не проблемами типа базы данных. Все на стороне модели должно быть общим для любого потенциального поставщика баз данных, чтобы вы могли легко переключаться на другой. Могут быть другие крючки, о которых я не знаю, но они, вероятно, не существуют в «ModelBuilder». – Ocelot20
Это действительно разочаровывает. Люди постоянно используют последовательные GUID, потому что они не догадываются, не беспокоятся о проблемах с ключевым конфликтом при соединении таблиц и т. Д. - это должно было быть по крайней мере параметром в EF6 вместо принудительного изменения. – Alex