2011-08-08 10 views
8

मैंने अभी तक नवीनतम ईएफ 4.1 कोड में अपग्रेड किया है- पहले NuGet का उपयोग करके और अब मुझे अपने मैपिंग के संबंध में एक त्रुटि प्राप्त हो रही है।ईएफ 4.1 एंटीटीटाइप में कोई कुंजी नहीं है - समग्र

मैं इस वर्ग

public class UserApplication 
{ 
    [Key, Column(Order = 0)] 
    [DatabaseGenerated(DatabaseGeneratedOption.None)] 
    public int UserId { get; set; } 

    [Key, Column(Order = 1)] 
    [DatabaseGenerated(DatabaseGeneratedOption.None)] 
    public int ApplicationId { get; set; } 

    [ForeignKey("ApplicationId")] 
    public virtual Application Application { get; set; } 

    public DateTime SubscribedDate { get; set; } 
} 

है और मैं इस त्रुटि हो रही है:

System.Data.Edm.EdmEntityType: : EntityType 'UserApplication' has no key defined. Define the key for this EntityType. 
System.Data.Edm.EdmEntitySet: EntityType: EntitySet 'UserApplications' is based on type 'UserApplication' that has no keys defined. 

मैं हालांकि यह इस

modelBuilder.Entity<UserApplication>().HasKey(obj => new {obj.UserId, obj.ApplicationId }); 

तरह Fluent एपीआई का उपयोग कैसे आ काम कर सकते हैं ईएफ एनोटेशन का उपयोग करके परिभाषित समग्र कुंजी नहीं उठाता है? मुझे पूरा यकीन है कि यह पुराने ईएफ 4.1 के साथ काम करता था।

+0

एक ही समस्या के रूप में आप क्या तुमने कभी एक समाधान मिला होने – Pandincus

+0

नहीं, मैंने नहीं किया अंत मैं DbModelBuilder – kfuglsang

+0

एक ही समस्या का उपयोग कर कुंजी के सभी को परिभाषित करने का फैसला किया है, मजेदार हिस्सा यह है कि मेरे पास दो हैं समग्र कुंजी वाले वर्ग, एक संकलन, अन्य नंबर .. –

उत्तर

1

इकाई फ्रेमवर्क 6.1.3 के साथ काम करता है। मैं भी एक बुनियादी Application वर्ग जोड़ा है, लेकिन UserApplication इस्तेमाल किया (DatabaseGenerat के अलावा के रूप में है एड विकल्प यह एसक्यूएल बनाया गया:।।

CREATE TABLE [dbo].[UserApplication] (
    [UserId] [int] NOT NULL, 
    [ApplicationId] [int] NOT NULL, 
    [SubscribedDate] [datetime] NOT NULL, 
    CONSTRAINT [PK_dbo.UserApplication] PRIMARY KEY ([UserId], [ApplicationId]) 
) 


CREATE TABLE [dbo].[Application] (
    [ApplicationId] [int] NOT NULL IDENTITY, 
    [Name] [nvarchar](max), 
    CONSTRAINT [PK_dbo.Application] PRIMARY KEY ([ApplicationId]) 
) 
2

मैं समस्या हल हो जाती गए हैं मैं सिर्फ अतिरिक्त जोड़ दिया है प्रमुख कॉलम:।?।।

public class AlbumUser 
{ 
    public Album Album 
    { 
     get; 
     set; 
    } 

    public IdentityUser User 
    { 
     get; 
     set; 
    } 

    [Key] 
    [Column(Order = 0)] 
    [StringLength(128)] 
    public string UserId 
    { 
     get; 
     set; 
    } 

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

मुझे यकीन नहीं है कि यह वास्तव में प्रश्न का उत्तर देता है। –

संबंधित मुद्दे