.mdf和web客户端使用REST
本文关键字:REST 客户端 web mdf | 更新日期: 2023-09-27 18:01:33
这可能是最业余的问题之一,但我们的最终项目要求我们通过web服务(SOAP或REST)连接到SQL Server数据库(.mdf
),然后使用它,我有最困难的时间来理解它。所以我想我要确保我做的事情是正确的,因为每次我开始我都觉得我做错了,不得不重新开始:
-
我创建了一个新的库类,通过一个新的ADO实体连接
.mdf
,并允许Visual Studio生成这些类。 -
从那里我添加了
using System.Runtime.Serialization; using System.Data.Linq.Mapping;
和属性
[Table(Name = "TABLENAME")] [DataContract]
在每个属性上面。
在那之后我有点困惑。我是否需要在库类中使用连接字符串?书中关于SOAP/REST的章节没有包含数据库示例,而是手工编码表,所以我可能已经偏离了错误的方向。我的搜索中没有人以同样的方式接近它,所以任何帮助都会很感激。
你的问题很难完全理解,因为你没有参考你正在阅读的书。把你的问题分成几个小块是很有用的。永远记得把你的关注点分开——这对你想象你想要实现的目标很有帮助。
你引用的属性在做两件不同的事情。
第一[Table]
:
你正在使用linq to sql查询数据库。我自己没有使用这个,但是应该在您的类上使用[Table]
属性。该对象将表示数据库中的表。您的属性将表示表中的列,并应使用[Column]
属性进行装饰。如果可以推断出这些属性,则不需要为它们添加名称。
要了解更多关于此工具如何工作的信息,请访问Microsoft网站。
第二[DataContract]
这是。net序列化的一部分,它告诉框架这个类可以被序列化为XML(或JSON,这取决于你使用的工具)。同样,这个属性应该修饰你的类,你应该为你的属性使用[DataMember]
属性。点击这里阅读更多内容。
下面是一个简单的例子。如果您的表看起来像:
Table name Person:
id int,
firstname nvarchar(256),
lastname nvarchar(256),
你会有这样的类:
[Table]
[DataContract]
public class Person
{
[Column]
[DataMember]
public int Id { get; set;}
[Column]
[DataMember]
public string FirstName { get; set;}
[Column]
[DataMember]
public string LastName { get; set;}
}
根据您到数据库的连接字符串。如果您在内部测试类库,则需要将连接字符串添加到App.config
。如果你在你的web服务项目中引用它,那么它将需要位于web.config
文件中,例如:
<connectionStrings>
<add name="Dbconnection"
connectionString="Server=localhost;
Database=exapleDatabase;
Integrated Security=True" ;
providerName="System.Data.SqlClient" />
</connectionStrings>
我建议多读一些书来打好基础。以上两种方法都只是工具。理解底层概念将使这些工具更容易使用。例如,一旦你理解了由LINQ to SQL执行的SQL,你就可以很容易地使用纯ADO.net编写自己的查询,甚至可以使用更现代的东西,如实体框架。微软总是不让你做艰苦的工作,但这有时可能意味着你没有真正理解正在发生的事情,在我看来,从长远来看,这只会给你带来问题。