2012-06-12 68 views
0

我已經將數據網格綁定到上下文並在運行時添加了一些行,但它會生成一個異常並且無法保存由於類型爲Guid的屬性而導致的更改,只生成空的Guid。
如何在創建對象時從實體框架中生成Guid?如何在創建對象時從實體框架生成Guid

+0

我看到實體模型上的實體屬性屬性的默認值屬性,但我試過Guid.NewGuid(),但它沒有奏效。 – HichemSeeSharp

+1

對不起,但這是非常基本的東西。下次嘗試使用Google。 –

+0

我已經GOOGLE了它,也許我沒有很好地查詢它 – HichemSeeSharp

回答

3

您可以 [DatabaseGenerated(DatabaseGeneratedOption.Identity)]

[DatabaseGenerated(DatabaseGeneratedOption.Identity)] 
public Guid Id { get; set; } 

這裝點您的GUID屬性將產生一個新的行ID每次插入的時間。

+0

這只是.Net 4.5或silverlight,而我正在使用4.0 – HichemSeeSharp

+3

廢話,它在.NET 4.0中工作得很好。 –

+0

即使我沒有讓它在我的代碼中工作,我仍會將其標記爲答案 – HichemSeeSharp

0

在其他的方式,可以使局部類YourEntity這樣的:

public partial class YourEntity 
{ 
    public Guid ID { get; set;}  
    public YourEntity() 
    { 
     ID = Guid.NewGuid(); 
    } 
} 
0

你可以改變爲外地身份屬性「StoreGeneratedPattern」。

所以你的對象'SalesOrderHeader'有一個'rowguid'字段。只需選擇該字段並轉到屬性。

選擇'StoreGeneratedPattern'並選擇'Identity'。

我應該指出,我也是新來的實體框架,但這對我工作。我只希望當模型更新時保留這個設置。如果不是,那將是一種痛苦。

謝謝, 灰色。