2012-07-02 38 views
10

Tôi đã cố gắng để di chuyển dự án MVC 3 của tôi để MVC 4 nhưng khi tôi muốn chuyển sang mô hình này:Tại sao 'DatabaseGenerated (DatabaseGeneratedOption.Identity) `không hoạt động trong MVC 4

public class Link 
{ 
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)] 
    public Guid ID { get; set; } 

    [DisplayName("Shorted URL")] 
    public string SURL { get; set; } 

    [DisplayName("General Link")] 
    public string OriginalURL { get; set; } 

    [DisplayName("Click Count")] 
    public int ClickCount { get; set; } 
} 

public class LinkDBContext : DbContext 
{ 
    public DbSet<Link> Links { get; set; } 
} 

tôi đã nhận lỗi với thuộc tính [System.ComponentModel.DataAnnotations.(DatabaseGeneratedOption.Identity)]. Tôi không biết vấn đề là gì. Có ai biết không?!?

Cập nhật

Đây là những lỗi:

Loại hoặc namespace tên 'DatabaseGeneratedAttribute' không thể tìm thấy (là bạn thiếu một chỉ thị sử dụng hoặc tham khảo một hội?)

Không thể tìm thấy loại tên hoặc không gian tên 'DatabaseGenerated' (là bạn thiếu một chỉ thị sử dụng hoặc tham chiếu assembly?)

+5

Thứ nhất, vấn đề của bạn không liên quan đến MVC (3 hoặc 4), khi mã của bạn đang xử lý Entity Framework. Thứ hai, bạn không nói bạn đang sử dụng phiên bản nào của EF và bạn không nói lỗi nào bạn nhận được. Vì sức mạnh tâm linh của tôi không hoạt động ngày hôm nay, bạn sẽ phải cố gắng cụ thể hơn. –

+0

@MystereMan Tôi vừa tạo một ứng dụng Internet bằng cách sử dụng VS2012 và nó có chính EF. Tôi không biết phiên bản là gì! –

+1

Nếu bạn có thể bao gồm thông báo lỗi thực tế trong câu hỏi sẽ hữu ích. – Satish

Trả lời

24

DatabaseGeneratedAttribute là trong không gian tên System.ComponentModel.DataAnnotations.Schema thuộc tính trong .NET 4.5

+0

FWI: bạn cần có System.ComponentModel.DataAnnotations được tham chiếu trong dự án của bạn – cpoDesign

+0

đã giúp tôi cũng thanx – sibonile

2

Nếu bạn muốn sử dụng thuộc tính này trong .net 4 bạn có thể sử dụng phiên bản Prerelease của EntityFramework 6 (hoặc thậm chí đêm xây dựng) để làm điều này, trong cửa sổ Manage NuGet Pakages, từ menu thả xuống ở đầu cửa sổ, chọn Include Prerelease.

Để cập nhật đêm xây dựng, trong Pakage Manager Settings thêm gói này Nguồn:

http://www.myget.org/F/aspnetwebstacknightly/ 

Đối với một hướng dẫn đầy đủ, xem EF on GitHub.

1

Bạn cần - trong một số trường hợp - để thay đổi khuôn khổ từ 4,5 hoặc ít hơn để 4.5.1 và sau đó cài đặt Entity Framework 6 + và nó sẽ được tìm thấy

+0

Cảm ơn! Điều này làm việc cho tôi, mặc dù tôi không cần phải cài đặt EF6 kể từ khi tôi đã có một phiên bản của EF trong dự án của tôi. – mkimmet

Các vấn đề liên quan