您的问题很难完全理解,因为您没有参考您正在阅读的书。将您的问题分成几块很有用。永远记住分开你的关注点——这对于想象你想要实现的目标非常有帮助。
你引用的属性做了两个不同的事情。
首先[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。 Microsoft 将始终保护您免于繁重的工作,但这有时可能意味着您并不真正了解正在发生的事情,并且在我看来,从长远来看,这只会给您带来问题。