Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ASP.NETWebAP2I:我的模型应该反映数据库中的表吗?_C#_Asp.net_Asp.net Web Api2 - Fatal编程技术网

C# ASP.NETWebAP2I:我的模型应该反映数据库中的表吗?

C# ASP.NETWebAP2I:我的模型应该反映数据库中的表吗?,c#,asp.net,asp.net-web-api2,C#,Asp.net,Asp.net Web Api2,我正在创建一个ASP.NETWebAPI2项目,用于查询现有SQLServer数据库 我目前正在根据我希望在资源被命中时返回给用户的数据的形状创建单独的类模型 例如:假设我在SQL Server中有一个如下所示的表: CREATE TABLE t_movies ( movieId INT IDENTITY(1, 1) PRIMARY KEY, name VARCHAR(50) NOT NULL, openingDate DATE NOT NULL, category VARCHA

我正在创建一个ASP.NETWebAPI2项目,用于查询现有SQLServer数据库

我目前正在根据我希望在资源被命中时返回给用户的数据的形状创建单独的类模型

例如:假设我在SQL Server中有一个如下所示的表:

CREATE TABLE t_movies (
  movieId INT IDENTITY(1, 1) PRIMARY KEY,
  name VARCHAR(50) NOT NULL,
  openingDate DATE NOT NULL,
  category VARCHAR(15) NOT NULL
);
public class MovieOpeningDate
{
  public string name { get; set; }
  public DateTime openingDate { get; set; }
}
我有一个资源,我只想检索电影的开映日期和名字。我不想将movieId或category与此资源中的其他数据一起发送给用户。因此,我在Model文件夹中创建了一个类,如下所示:

CREATE TABLE t_movies (
  movieId INT IDENTITY(1, 1) PRIMARY KEY,
  name VARCHAR(50) NOT NULL,
  openingDate DATE NOT NULL,
  category VARCHAR(15) NOT NULL
);
public class MovieOpeningDate
{
  public string name { get; set; }
  public DateTime openingDate { get; set; }
}
是否可以设计一个反映DB表的类,如下所示:

public class Movie
{
  public int movieId { get; set; }
  public string name { get; set; }
  public DateTime openingDate { get; set; }
  public string category { get; set; } 
}

并在返回到函数中之前对数据进行形状调整(删除类变量)?我觉得我目前采取的方法是过度和不必要的。

会的!但是,我有多个资源将使用同一个类,我希望向它们返回电影结构的不同变体,例如一个将返回查询中的所有列,一个将只返回类别列,等等。如果这似乎是一个明显的问题,很抱歉,总的来说,我对ASP.net和C有点不熟悉。假设您使用的是MVC设计,这看起来像是一个“视图模型”。视图模型是描述MVC(模型-视图-控制器)有多简单时未提及的额外层。另一个选项是简单地使用同一个类,并且只向最终用户显示您想要的内容。我如何隐藏我不希望最终用户在调用该类的新实例时看到的类变量?最好同时使用模型(反映您的表)和特定于特定视图的视图模型。因为这是一个api,所以你没有一个视图,但是你有具体的信息,这些信息将在响应中提供,这是相同的基本思想。