Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.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# 服务器-客户端应用程序和共享Linq到SQL生成的类_C#_Rest_Linq To Sql_Dbml - Fatal编程技术网

C# 服务器-客户端应用程序和共享Linq到SQL生成的类

C# 服务器-客户端应用程序和共享Linq到SQL生成的类,c#,rest,linq-to-sql,dbml,C#,Rest,Linq To Sql,Dbml,我正在开发一个客户机-服务器应用程序,其中服务器作为REST服务运行,并连接到SQL server。类是从*.dbml文件(LINQ->SQL)自动生成的 我的问题是:我应该为服务器和客户端之间的数据交换创建新的类,还是只在服务器和客户端上使用生成的类 使用从*.dbml-PROS生成的相同类 更好的可持续性(自动生成数据约束) 由于在两个数据对象之间复制数据而导致数据错误的概率较低-(模型是自动生成的,您无需保持将值从生成的模型复制到另一个模型) 速度更快。您只需在服务器上创建模型的一个实例

我正在开发一个客户机-服务器应用程序,其中服务器作为REST服务运行,并连接到SQL server。类是从*.dbml文件(LINQ->SQL)自动生成的

我的问题是:我应该为服务器和客户端之间的数据交换创建新的类,还是只在服务器和客户端上使用生成的类

使用从*.dbml-PROS生成的相同类

  • 更好的可持续性(自动生成数据约束)

  • 由于在两个数据对象之间复制数据而导致数据错误的概率较低-(模型是自动生成的,您无需保持将值从生成的模型复制到另一个模型)

  • 速度更快。您只需在服务器上创建模型的一个实例

    • (当类A和类B表示相同的数据时,必须创建这两个类的实例)
  • 使用从*.dbml-CONS生成的相同类

  • 客户机完全了解数据库表结构和使用的数据类型
  • 您缺少的一个“缺点”是,使用相同的模型可能意味着您传输的数据超出了需要


    在客户机和服务器之间使用特定合同意味着只有客户机需要的数据通过网络发送。

    这是一个合理的利弊总结。对我来说,另一个缺点是,客户机可能以不同的方式使用该模型,例如,对于某些字段可能需要或不需要的地址,我将在viewmodel中的属性注释中使用不同的
    required
    定义来实现这一点。另一个缺点可能是,通常你不想只改变一个模型的属性,而是要改变各种模型的混合属性。