关于Web API中视图模型的集合助手类的问题<>查看模型<>实体框架<>数据库结构。
我正在尝试在一个项目上开始设计,该项目将使用“API”前端来获取数据,然后使用HTML / Javascript页面来获取和渲染。
在尝试创建一个MVVM方法时,我不确定我想要的是否是一个好的approch。
这是ViewModel的get方法。 HTML方面的用户一次只能编辑一个Object,因此该集合只提供对象的数组/列表,使Web API类“不那么混乱”。
使用Visual Studio MVC / Web API项目/ c#(Visual Studio 2013以及MVC 5组件)
所以使用椅子对象的例子
注意:在实际代码中不会执行“new MyEntity()。Chairs。”所有的时间,它都会被设置为类中的变量。只需简单的书面例子就可以说清楚。
Web API部分: 我们将复数api对象前点 Web API控制器= ChairsController 2获得
namespace FurnitureAPI.Controllers
{
[Authorize]
public class ChairsController : ApiController
{
// GET api/chairs
public IHttpActionResult Get()
{
var chairs = ViewModels.Chairs.Get();
return Ok(chairs);
}
// GET api/chairs/5
//public string Get(int id)
public IHttpActionResult Get(int id)
{
var chair = ViewModels.Chairs.Get(id);
return Ok(chair);
}
公开... GET(){...} //所有主席 public ... GET(int id){} //单个椅子,其中id
在数据库方面,我们有主席表。这对数据库来说是单一的。 数据库已经存在,因此使用实体框架和数据库优先建模,我们进入实体
var furniture_db = new Models.FurnintureEntities();
和
Models.Chair
所以中间想要一个查看模型主席。
namespace FurnitureAPI.ViewModels {
public class Chair {
public int ChairID { get; set; }
public string Name { get; set; }
public Chair() { }
public Chair(int chairid, string name) {
ChairID = chairid;
Name = name;
}
public Chair(Models.Chair db_chair) {
ChairID = db_chair.ChairID;
Name = db_chair.Name;
}
}
在我看来,Web API ChairsController我不想拥有任何实体框架代码。 但是我希望api能够调用一些东西来获得一个主席视图模型的列表/集合
所以我想,将主席添加为ViewModel命名空间中的一个类,它将是静态的。
所以web api变为
public IHttpActionResult Get()
{
var chairs = ViewModels.Chairs.Get();
return Ok(chairs);
}
然后View Model Collection Chairs看起来像
namespace FurnitureAPI.ViewModels {
public static class Chairs {
public static List<Chair> Get() {
List<Chair> chairs = (from s in new Models.FurnintureEntities().Chairs
select new ViewModel.Chair {
ChairID = s.ChairID,
Name = s.Name
}).ToList();
return chairs;
}
public static Chairs Get(int id) {
var chair = new FurnitureEntities().Chairs.SingleOrDefault(c => c.ChairID == id);
return chair != null ? new ViewModel.Chair(chair) : null;
}
}
所以问题是,这个Chairs集合包装好吗/理想/糟糕/跑到山丘/其他地方,还是有人可以指出不同的方法?
我不明白为什么在互联网上努力寻找参考,肯定希望它不是脾气暴躁的晚年。 我发现很多WPF MVVM实体框架数据库的第一个东西,但我只是想制作“简单”的Web API来公开数据库来制作HTML视图。
也许我不需要打扰View Model并简单地在Web API方法中序列化实体?
感谢。
答案 0 :(得分:0)