.mdf和web客户端使用REST

本文关键字:REST 客户端 web mdf | 更新日期: 2023-09-27 18:01:33

这可能是最业余的问题之一,但我们的最终项目要求我们通过web服务(SOAP或REST)连接到SQL Server数据库(.mdf),然后使用它,我有最困难的时间来理解它。所以我想我要确保我做的事情是正确的,因为每次我开始我都觉得我做错了,不得不重新开始:

  1. 我创建了一个新的库类,通过一个新的ADO实体连接.mdf,并允许Visual Studio生成这些类。

  2. 从那里我添加了

    using System.Runtime.Serialization;
    using System.Data.Linq.Mapping;
    

    和属性

    [Table(Name = "TABLENAME")]
    [DataContract]
    

    在每个属性上面。

在那之后我有点困惑。我是否需要在库类中使用连接字符串?书中关于SOAP/REST的章节没有包含数据库示例,而是手工编码表,所以我可能已经偏离了错误的方向。我的搜索中没有人以同样的方式接近它,所以任何帮助都会很感激。

.mdf和web客户端使用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编写自己的查询,甚至可以使用更现代的东西,如实体框架。微软总是不让你做艰苦的工作,但这有时可能意味着你没有真正理解正在发生的事情,在我看来,从长远来看,这只会给你带来问题。