6

Tôi có một dự án sử dụng Entity Framework, nhưng tôi không chắc chắn mình đang sử dụng phiên bản EF nào. Theo Microsoft version history EF5 sẽ cài đặt chính nó:Phiên bản Entity Framework nào được dự án của tôi sử dụng?

Nếu bạn tạo một mô hình mới bằng cách sử dụng thiết kế Entity Framework trong Visual Studio 2012, gói EF5 NuGet sẽ được cài đặt để dự án của bạn và mã được tạo sẽ sử dụng EF5.

Tuy nhiên tôi không tạo EF-phần của dự án, nhưng đã nhận được nó từ kiểm soát phiên bản (TFS). Bây giờ tôi không chắc chắn làm thế nào để xác định nếu tôi có EF5.

Nếu tôi nhấp chuột phải vào thư mục Tham khảo của dự án và chọn Quản lý gói NuGet, nó hiển thị EF5 bằng nút Gỡ cài đặt, ngụ ý tôi có EF5.

Nhưng system.data.entity trong thư mục Tham chiếu có Phiên bản thời gian chạy v4.0.30319 và Phiên bản 4.0.0.0 trong trình khám phá Thuộc tính, có nghĩa là EF 4 (theo Determine version of Entity Framework I am using?).

Tôi có điều này trong app.config tôi:

<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> 

Và điều này trong web.config tôi:

<configSections> 
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> 
</configSections> 
<!--...--> 
    <dependentAssembly> 
    <assemblyIdentity name="EntityFramework" publicKeyToken="b77a5c561934e089" culture="neutral" /> 
    <bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0" /> 
    </dependentAssembly> 
<!--...--> 
    <entityFramework> 
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" /> 
    </entityFramework> 

Ai có thể làm rõ điều này?

Trả lời

3

lẽ proyect của bạn có trụ sở tại NET 4.0, trong trường hợp này bạn có một phiên bản EF5 mà không cần .NET 4.5 các tính năng:

EntityFramework 5 use dll version 4.4.0.instead 5.0

+0

Điểm tốt mà tôi chưa từng nghĩ tới. Tôi đã kiểm tra các dự án của mình, nhưng tất cả chúng đều là .NET 4.5. –

0

tôi có số phiên bản tương tự trên System.Data.Entity. Điều này xuất phát từ khung .Net, không phải cài đặt khung thực thể. Bạn có thể xem phần nào của ứng dụng đang sử dụng nó bằng cách nhấp chuột phải vào tham chiếu và chọn Tìm phụ thuộc mã trên mô-đun. Nói chung không có nhiều lắm trừ khi mã đang truy cập siêu dữ liệu, phần lớn là enums của nhà nước và thuộc tính defn's. Phiên bản tiếp theo sẽ mang lại tất cả những điều này vào EntityFramework.dll - xem EFv6

BTW, nhìn vào thư mục trong thuộc tính của System.Data.Entity, v4.0.30319 là trong .NETFramework \ v4.5

+0

1. Vì tôi không thể sử dụng các tính năng được EF5 sử dụng, việc xem mã sử dụng mô-đun sẽ giúp tôi như thế nào? 2. Theo [câu trả lời này] (http://stackoverflow.com/a/12539749/422877), tôi chỉ nên nhìn vào 'EntityFramework.dll', cũng hiển thị ** Phiên bản thời gian chạy ** v4.0.30319 nhưng * * Phiên bản ** 5.0.0.0. –

0

Cách dễ nhất để có được loại thông tin này là cài đặt Microsoft ASP.NET MVC Diagnostics 5.2.3

này chỉ tạo ra một trang web cho dự án của bạn với tất cả các thông tin cần thiết. Ví dụ: bạn chỉ có thể tìm kiếm "Pháp nhân" trên trang đó và xem thông tin phiên bản ngay lập tức.

Đây là số article hiển thị một lần sử dụng công cụ chẩn đoán này.

1

Đi tới tệp packages.config của dự án của bạn.

<package id="EntityFramework" version="6.1.3" targetFramework="net45" /> 
Các vấn đề liên quan