.mdf和使用REST的Web客户端

时间:2014-05-04 21:00:38

标签: c# rest soap webclient mdf

这可能是最业余的问题之一,但我们的最终项目要求我们通过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]
    

    每个属性上方。

  3. 之后我有点困惑。我是否需要库类中的连接字符串?本书关于SOAP / REST的章节没有包含数据库示例,而是包含手动编码的表,因此我可能已经走错了方向。我的搜索没有任何人以同样的方式接近它,所以任何帮助都将受到赞赏。

1 个答案:

答案 0 :(得分:0)

您的问题很难完全理解,因为您没有参考您正在阅读的书籍。将问题分解为块可能很有用。永远记得分开您的顾虑 - 这对于想象您想要实现的目标非常有帮助。

您引用的属性正在做两件事。

首先[Table]

您正在使用linq to sql来查询您的数据库。我自己没有使用过,但[Table]属性应该在你的课程中使用。该对象将表示数据库中的表。您的属性将表示表中的列,并应使用[Column]属性进行修饰。如果可以推断出这些属性,则不需要为这些属性添加名称。

要详细了解此工具的工作原理,请查看Microsoft website

其次[DataContract]

这是.net序列化的一部分,并告诉框架该类可以序列化为XML(或JSON,具体取决于您使用的工具)。同样,此属性应该装饰您的类,您应该为您的属性使用[DataMember]属性。阅读更多here

这是一个简单的例子。如果你的表看起来像:

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轻松编写自己的查询,甚至可以使用像Entity Framework这样更现代的东西。微软将始终保护您免受困难,但有时可能意味着您并不真正了解正在发生的事情,而且我认为这样只会给您带来长期问题。