2014-03-04 91 views
5

我在我的Windows計算機上使用實體框架6實現,它工作正常。爲了在Linux計算機上使用,我嘗試使用Mono來運行該項目。當程序試圖訪問EF6我收到以下錯誤:單實體框架6重複

System.InvalidOperationException: The configured column orders for the table 'Table' contains duplicates. Ensure the specified column order values are distinct. 
    at System.Data.Entity.ModelConfiguration.Conventions.ColumnOrderingConventionStrict.ValidateColumns (System.Data.Entity.Core.Metadata.Edm.EntityType table, System.String tableName) [0x00000] in <filename unknown>:0 
    at System.Data.Entity.ModelConfiguration.Conventions.ColumnOrderingConvention.Apply (System.Data.Entity.Core.Metadata.Edm.EntityType item, System.Data.Entity.Infrastructure.DbModel model) [0x00000] in <filename unknown>:0 
+0

我們在EF上運行的單聲道也有問題。希望有人知道答案。 –

+0

Hello Erik,您正在使用EF,Mono,MySQL的哪個版本? – Michael

+0

MySQL 5.5.35和Mono的最新版本(3.2.7) –

回答

1

我能找到解決方案。我的一些實體正在使用Column屬性。在我的情況下,我使用[Column(TypeName = "Date")]。當我刪除這個屬性時,我能夠在我的Linux服務器上運行實體框架。

+0

當需要'Column'屬性時,這不是一個真正的解決方案。例如,我需要_指定列類型是'datetime2'。 – nagytech

1

使用代替[列]屬性EF流利API爲我工作:

modelBuilder.Entity()屬性(T => t.SomeProp).HasColumnType( 「MYTYPE」);

0

我知道這個問題是相當古老的,但無論如何,我最終在這裏。

使用EF代碼首先,我在模型中添加了一列,並手動更改了表類。

檢查是否沒有重複。您可以通過更改[Column(Order = 1)]來修復它。

0

我得到這個錯誤的實體框架六典首先這種模式:

public class CycleTest 
{ 
    [MaxLength(5)] 
    [Key, Column(Order = 0)] 
    public string Action { get; set; } 

    [Key, Column(Order = 1)] 
    public int Cycle { get; set; } 

    public DateTime Created { get; set; } 

    [ForeignKey("Case"), Column(Order = 0)] 
    public string BusinessSystemId { get; set; } 

    [ForeignKey("Case"), Column(Order = 1)] 
    public int CaseId { get; set; } 

    public virtual Case Case { get; set; } 
} 

改變了列值ForeignKey屬性,然後一切工作。像這樣:

public class CycleTest 
{ 
    [MaxLength(5)] 
    [Key, Column(Order = 0)] 
    public string Action { get; set; } 

    [Key, Column(Order = 1)] 
    public int Cycle { get; set; } 

    public DateTime Created { get; set; } 

    [ForeignKey("Case"), Column(Order = 2)] 
    public string BusinessSystemId { get; set; } 

    [ForeignKey("Case"), Column(Order = 3)] 
    public int CaseId { get; set; } 

    public virtual Case Case { get; set; } 
}