C# 如何将实体框架5(CodeFirst)与REST服务中的DataContract一起使用
我来自web表单世界,我正在使用代码优先的方法学习MVC4和实体框架5。这是我第一次先使用EF代码,我很难理解EF需要我做什么才能创建/更新数据库 我正在向RESTful服务发出请求,并将响应反序列化为一个C# 如何将实体框架5(CodeFirst)与REST服务中的DataContract一起使用,c#,entity-framework,rest,ef-code-first,C#,Entity Framework,Rest,Ef Code First,我来自web表单世界,我正在使用代码优先的方法学习MVC4和实体框架5。这是我第一次先使用EF代码,我很难理解EF需要我做什么才能创建/更新数据库 我正在向RESTful服务发出请求,并将响应反序列化为一个DataContract。理想情况下,我希望能够将这个DataContract插入到数据库中,但我不确定如何从DataContract生成DbContext类,以便EF能够完成这项工作 数据合同的简化版本 [DataContract] public class MoviesDataContra
DataContract
。理想情况下,我希望能够将这个DataContract
插入到数据库中,但我不确定如何从DataContract
生成DbContext
类,以便EF能够完成这项工作
数据合同的简化版本
[DataContract]
public class MoviesDataContract {
[DataMember(Name = "total")]
public int Total { get; set; }
[DataMember(Name = "movies")]
public IEnumerable<Movie> Movies { get; set; }
[DataMember(Name = "link_template")]
public string LinkTemplate { get; set; }
}
[DataContract]
public class Movie {
[DataMember(Name = "id")]
public int Id { get; set; }
[DataMember(Name = "title")]
public string Title { get; set; }
[IgnoreDataMember]
public int? Year {
get {
int i;
return int.TryParse(_year, out i) ? i : (int?)null;
}
set { _year = value.ToString(); }
}
[DataMember(Name = "year")]
private string _year { get; set; }
}
我的问题是
DataContract
生成DbContext
类,或者我需要手动创建它们您是否尝试过像启动普通代码优先项目时那样将数据契约提供给DBSet
public class ProductContext : DbContext
{
public DbSet<Category> Categories { get; set; }
public DbSet<Product> Products { get; set; }
}
公共类ProductContext:DbContext
{
公共数据库集类别{get;set;}
公共数据库集产品{get;set;}
}
EF应该忽略现有属性并创建一些实体
有关如何使用DataContext的示例,请参阅本文:
既然你是EF的新手,不妨从这里开始:这太完美了,谢谢你的链接,它们正是我想要的:)
public class ProductContext : DbContext
{
public DbSet<Category> Categories { get; set; }
public DbSet<Product> Products { get; set; }
}