2013-10-14 3 views

ответ

2

От 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);  
} 
+0

Если это возможно в миграции, делает MODELBUILDER (OnModelCreating) possi bly обеспечивают аналогичную функциональность? – Alex

+0

К сожалению, это маловероятно. Это больше связано с миграцией, поскольку модель связана с отношениями между сущностями, а не проблемами типа базы данных. Все на стороне модели должно быть общим для любого потенциального поставщика баз данных, чтобы вы могли легко переключаться на другой. Могут быть другие крючки, о которых я не знаю, но они, вероятно, не существуют в «ModelBuilder». – Ocelot20

+0

Это действительно разочаровывает. Люди постоянно используют последовательные GUID, потому что они не догадываются, не беспокоятся о проблемах с ключевым конфликтом при соединении таблиц и т. Д. - это должно было быть по крайней мере параметром в EF6 вместо принудительного изменения. – Alex