Строка соединения и Datacontext в LINQ - PullRequest
2 голосов
/ 02 июня 2011

Я занимаюсь разработкой сайта с использованием ASP.NET, SQL 2008 и LINQ.Я хочу спросить о строке подключения.Я сделал такой класс, чтобы получить текст данных на каждой странице:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

public static class DatabaseConnection
{
    static DataClassesDataContext datacontext;    
    public static DataClassesDataContext getConnection()
    {
       datacontext = new DataClassesDataContext(@"Data Source=localhost;Initial Catalog=dbname; Integrated Security=True");
        return datacontext;
    }
}

Это правильный способ получить соединение на каждой странице?

Также о «источнике данных»,когда я разверну сайт, что это будет?И в чем разница между источником данных и адресными ключевыми словами?

Ответы [ 2 ]

2 голосов
/ 02 июня 2011

Гораздо лучше, если вы разместите строку подключения в файле Web.Config.

<?xml version="1.0"?>
<configuration>
    <configSections>
<connectionStrings>
    <add name="DB" connectionString="Data Source=localhost;Initial Catalog=dbname; Integrated Security=True" providerName="System.Data.SqlClient"/>
  </connectionStrings>

</configuration>

Посмотрите на это:

LINQ To SQL и Web.Config ConnectionStringЗначение

LINQ to SQL Строки подключения с проектами библиотеки классов

С уважением

2 голосов
/ 02 июня 2011

Это правильный способ получения экземпляра контекста данных, да.Вы можете использовать Источник данных или Сервер Я полагаю.

Пожалуйста, имейте в виду, что DataContext является IDisposable, поэтому убедитесь, что он не остается без дела после использования, я склонен кdo:

using (var context = DataHelper.GetContext())
{
   // Stuff.
}

Кроме того, вы действительно должны поместить строки подключения в файл конфигурации:

<connectionStrings>
   <add name="Live" connectionString="blah;"/>
</connectionStrings>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...