Использование лямбда-выражения
db.Categories
.GroupJoin(
db.Products,
Category => Category.CategoryId,
Product => Product.CategoryId,
(x, y) => new { Category = x, Products = y })
.SelectMany(
xy => xy.Products.DefaultIfEmpty(),
(x, y) => new { Category = x.Category, Product = y })
.Select(s => new
{
CategoryName = s.Category.Name,
ProductName = s.Product.Name
})
Хорошо .. все заработало после перезапуска VSTS. Ссылка предлагает решение той же проблемы. Хотел бы я увидеть это раньше. :)
Просто установка
Install-Package System.Configuration.ConfigurationManager -Version 4.5.0
затем использование
using System.Configuration;
Для проверки работоспособности попробуйте создать новый проект веб-приложения, откройте код для страницы Default.aspx. Добавьте строку в Page_Load для доступа к строке подключения.
По умолчанию в нее должен быть добавлен System.Configuration в качестве ссылки. Вы также должны увидеть оператор using в верхней части файла кода.
Мой код позади файла теперь выглядит так и компилируется без проблем.
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
namespace WebApplication1
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string connString = ConfigurationManager.ConnectionStrings["MyConnectionStringName"].ConnectionString;
}
}
}
Предполагается, что у меня есть строка подключения в моем web.config с имя равно "MyConnectionStringName" вот так ...
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
</configSections>
<connectionStrings>
<add name="MyConnectionStringName"
connectionString="Data Source=.;Initial Catalog=MyDatabase;Integrated Security=True"
providerName="System.Data.SqlClient" />
</connectionStrings>
</configuration>
Да, это элементарно, я знаю. Но если у вас нет лучших идей, иногда полезно проверить что-нибудь действительно простое, которое, как вы знаете, должно работать.
Вы уверены, что добавили ссылку на сборку .NET, а не на что-то еще? Я бы удалил вашу ссылку, а затем попытался бы добавить ее снова, убедившись, что вы выбрали вкладку .NET в диалоговом окне справки Visual Studio - последняя версия должна быть 2.0.0.0 в GAC.
Не только необходимо использовать пространство имен System.Configuration
. Вы также должны добавить ссылку на сборку System.Configuration.dll
с помощью
System.Configuration
. Это точно сработает.
Также для NameValueCollection
вы должны написать:
using System.Collections.Specialized;