2015-05-05 29 views
1

我的問題很簡單,我正在使用實體框架與asp.net MVC。Entity Framework如何知道添加遷移需要哪個類?

我不確定這個問題是否有幫助,但我有疑問。

實體框架應該如何知道,他必須爲哪個類添加遷移,爲什麼EF不會爲ViewModel類生成遷移?

我只是想知道EF將如何區分ViewModel.cs類和Model.cs類,並只爲模型添加遷移。

在此先感謝。

回答

5

我認爲它檢查哪些類已被添加到DbContext中。

using System.Data.Entity; 
using System.Collections.Generic; 
using System.ComponentModel.DataAnnotations; 
using System.Data.Entity.Infrastructure; 

namespace MigrationsDemo 
{ 
    public class BlogContext : DbContext 
    { 
     public DbSet<Blog> Blogs { get; set; } 
    } 

    public class Blog 
    { 
     public int BlogId { get; set; } 
     public string Name { get; set; } 
    } 
} 

博客現在將與遷移一起考慮。請參閱代碼優先遷移此鏈接瞭解更多信息:https://msdn.microsoft.com/en-us/data/jj591621.aspx

0

有一些地方,你可以添加配置到實體框架,但在它的基本形式,它遍歷您DbContext類的屬性(與公共get ),並且認爲IDbSet類型的所有屬性都是數據模型的一部分。

該屬性不一定要有set。例如,這是一個有效的實體定義,在DbContext EF將提取並生成遷移:

public IDbSet<MyEntity> MyEntities 
{ 
    get { return Set<MyEntity>(); } 
} 
相關問題