Найдено результатов: 32

Заполнение DataSet или DataTable из результирующего набора запроса LINQ

Как можно представить запрос LINQ как веб-службу ASMX? Обычно с бизнес-уровня я могу вернуть типизированный DataSet или DataTable , который может быть сериализован для транспорта через ASMX.

Как я могу сделать то же самое для запроса LINQ? Есть ли способ заполнить типизированный DataSet или DataTable с помощью запроса LINQ?

public static MyDataTable CallMySproc()
{
    string conn = "...";

    MyDatabaseDataContext db = new MyDatabaseDataContext(conn);
    MyDataTable dt = new MyDataTable();

    // execute a sproc via LINQ
    var query = from dr
                in db.MySproc().AsEnumerable
                select dr;

    // copy LINQ query resultset into a DataTable -this does not work !    
    dt = query.CopyToDataTable();

    return dt;
}

Как я могу получить результирующий набор запроса LINQ в DataSet или DataTable ? Кроме того, можно ли сериализовать запрос LINQ, чтобы я мог представить его как веб-службу ASMX?

c#   linq   web-services   .net-3.5    

645   6   16:03, 1st July, 2020


Как я могу получить отчетливый, упорядоченный список имен из DataTable, используя LINQ?

У меня есть DataTable с колонкой Name . Я хочу создать коллекцию уникальных имен, упорядоченных в алфавитном порядке. Следующий запрос игнорирует предложение order by .

var names =
    (from DataRow dr in dataTable.Rows
    orderby (string)dr["Name"]
    select (string)dr["Name"]).Distinct();

Почему orderby не исполняется?

c#   linq   .net-3.5    

470   7   16:03, 1st July, 2020


Подкачка коллекции с помощью LINQ

Как вы просматриваете коллекцию в LINQ, учитывая, что у вас есть startIndex и count ?

linq   .net-3.5    

422   4   16:03, 1st July, 2020


Как мне наиболее элегантно выразить left join с помощью запроса aggregate SQL as LINQ

SQL:

SELECT
   u.id,
   u.name,
   isnull(MAX(h.dateCol), '1900-01-01') dateColWithDefault
FROM universe u
LEFT JOIN history h 
   ON u.id=h.id 
   AND h.dateCol<GETDATE()-1
GROUP BY u.Id, u.name

c#   linq   left-join    

469   4   16:03, 1st July, 2020


Подходят ли когда-нибудь несколько классов DataContext?

Чтобы полностью использовать LinqToSql в приложении ASP.net 3.5, необходимо создать классы DataContext (что обычно делается с помощью конструктора в VS 2008). С точки зрения UI, DataContext-это дизайн разделов вашей базы данных, которые вы хотели бы предоставить через LinqToSql, и является неотъемлемой частью в настройке функций ORM LinqToSql.

Мой вопрос: я настраиваю проект, который использует большую базу данных, где все таблицы связаны каким-то образом через внешние ключи. Моя первая склонность-сделать один огромный класс DataContext, который моделирует всю базу данных. Таким образом, я мог бы теоретически (хотя я не знаю, понадобится ли это на практике) использовать внешние ключевые соединения, которые генерируются через LinqToSql, чтобы легко переходить между связанными объектами в моем коде, вставлять связанные объекты и т. д.

Однако после некоторых размышлений я теперь думаю, что может быть более целесообразно создать несколько классов DataContext, каждый из которых относится к определенному пространству имен или логическому взаимосвязанному разделу в моей базе данных. Моя главная проблема заключается в том, что создание и удаление одного огромного класса DataContext все время для отдельных операций, связанных с конкретными областями базы данных, будет налагать ненужное наложение на ресурсы приложения. Кроме того, легче создавать и управлять меньшими файлами DataContext, чем одним большим. То, что я потеряю, - это то, что будут некоторые удаленные разделы базы данных, которые не будут доступны для навигации через LinqToSql (даже если цепочка отношений соединяет их в реальной базе данных). Кроме того, будут существовать некоторые классы таблиц, которые будут существовать в более чем одном DataContext.

Любые мысли или опыт о том, являются ли множественные DataContexts (соответствующие пространствам имен DB) подходящими вместо (или в дополнение к) одному очень большому классу DataContext (соответствующему всему DB)?

asp.net   .net   linq-to-sql   datacontext    

481   5   16:03, 1st July, 2020


Сколько накладных расходов на производительность базы данных при использовании LINQ?

Сколько накладных расходов на производительность базы данных связано с использованием C# и LINQ по сравнению с пользовательскими оптимизированными запросами, загруженными в основном низкоуровневыми C, как с серверной частью SQL Server 2008?

Я специально думаю здесь о случае, когда у вас есть довольно интенсивная программа для обработки данных, и вы будете делать обновление данных или обновление по крайней мере один раз на экране и будете иметь 50-100 одновременных пользователей.

sql-server   linq   performance   linq-to-sql    

545   2   16:03, 1st July, 2020


LINQ в SQL строк enums

LINQ - SQL позволяет сопоставлениям таблиц автоматически преобразовываться обратно и вперед в Enums, указывая тип столбца - это работает для строк или целых чисел.

Есть ли способ сделать преобразование нечувствительным к регистру или добавить пользовательский класс сопоставления или метод расширения в микс, чтобы я мог указать, как строка должна выглядеть более подробно.

Причины для этого могут заключаться в том, чтобы обеспечить более приятное соглашение об именах внутри некоторого нового фанкового кода C# в системе, где схема данных уже установлена (и полагается на некоторые устаревшие приложения), поэтому фактический текст в базе данных не может быть изменен.

linq-to-sql    

408   1   16:03, 1st July, 2020


Когда использовать метод расширения с lambda над LINQtoObjects для фильтрации коллекции?

Я прототипирую некоторые фильтры коллекции C# 3 и наткнулся на это. У меня есть коллекция продуктов:

public class MyProduct
{
    public string Name { get; set; }
    public Double Price { get; set; }
    public string Description { get; set; }
}

var MyProducts = new  List<MyProduct>
{            
    new  MyProduct
    {
        Name = "Surfboard",
        Price = 144.99,
        Description = "Most important thing you will ever own."
    },
    new MyProduct
    {
        Name = "Leash",
        Price = 29.28,
        Description = "Keep important things close to you."
    }
    ,
    new MyProduct
    {
        Name = "Sun Screen",
        Price = 15.88,
        Description = "1000 SPF! Who Could ask for more?"
    }
};

Теперь, если я использую LINQ для фильтрации, он работает, как и ожидалось:

var d = (from mp in MyProducts
             where mp.Price < 50d
             select mp);

И если я использую метод расширения Where в сочетании с Lambda, фильтр также работает:

var f = MyProducts.Where(mp => mp.Price < 50d).ToList();

Вопрос: в чем разница, и зачем использовать одно над другим?

c#   linq   .net-3.5   lambda    

440   4   16:03, 1st July, 2020


Как вернуть страницу результатов из SQL?

Многие приложения имеют сетки, которые отображают данные из таблицы базы данных по одной странице за раз. Многие из них также позволяют пользователю выбирать количество записей на странице, Сортировать по любому столбцу и перемещаться по результатам.

Что такое хороший алгоритм для реализации этого шаблона без приведения всей таблицы к клиенту и последующей фильтрации данных на клиенте. Как вы приносите только те записи, которые хотите показать пользователю?

Разве LINQ упрощает решение?

.net   sql   linq   pagination    

571   8   05:33, 9th August, 2020


Условные Запросы Linq

Мы работаем над средством просмотра журналов. Использование будет иметь возможность фильтровать по пользователю, серьезности и т.д. В Sql дней я бы добавил к строке запроса, но я хочу сделать это с Linq. Как я могу условно добавить, где предложения?

c#   linq   linq-to-sql   .net-3.5    

482   13   02:35, 13th August, 2020


Есть ли у кого-нибудь успехи в модульном тестировании SQL хранимых процедур?

Мы обнаружили, что модульные тесты, которые мы написали для нашего кода C#/C++, действительно окупились. Но у нас все еще есть тысячи линий бизнес-логики в хранимых процедурах, которые действительно тестируются в гневе, когда наш продукт развертывается для большого числа пользователей.

Хуже всего то, что некоторые из этих хранимых процедур оказываются очень длинными из-за снижения производительности при передаче временных таблиц между SPs. Это помешало нам провести рефакторинг для упрощения кода.

Мы предприняли несколько попыток построить модульные тесты вокруг некоторых наших ключевых хранимых процедур (в первую очередь тестирования производительности), но обнаружили, что настройка тестовых данных для этих тестов действительно трудна. Например, мы в конечном итоге копируем вокруг тестовых баз данных. В дополнение к этому, тесты в конечном итоге оказываются действительно чувствительными к изменениям, и даже самым маленьким изменениям в сохраненном проке. или таблица требует большого количества изменений в тестах. Поэтому после того, как многие сборки ломаются из-за того, что эти тесты базы данных периодически проваливаются, нам просто нужно было вытащить их из процесса сборки.

Итак, основная часть моих вопросов заключается в следующем: кто-нибудь когда-нибудь успешно писал модульные тесты для своих хранимых процедур?

Вторая часть моих вопросов заключается в том, будет ли модульное тестирование проще/легче с linq?

Я подумал, что вместо того, чтобы создавать таблицы тестовых данных, вы можете просто создать коллекцию тестовых объектов и протестировать свой код linq в ситуации “linq to objects”? (Я совершенно новичок в linq, так что не знаю, сработает ли это вообще)

sql   unit-testing   linq-to-sql    

506   16   05:49, 18th August, 2020


LINQ, сущность, реализующая интерфейс и исключение в сопоставлении

Я использую шаблон репозитория с LINQ, есть IRepository.DeleteOnSubmit(T сущности). Он отлично работает, но когда мой класс сущностей имеет интерфейс, например:

public interface IEntity { int ID {get;set;} }

public partial class MyEntity: IEntity {

    public int ID { 
        get { return this.IDfield; }
        set { this.IDfield=value;  }
    }
}

а затем пытается удалить какой-то объект, как это:

IEntity ie=repository.GetByID(1);
repoitory.DeleteOnSubmit(ie);

бросает
Член 'IEntity.ID' не имеет поддерживаемого перевода в SQL.

извлечение данных из DB работает, но удалить и вставить не. Как использовать интерфейс против DataContext?


Вот оно:
Сообщение об исключении: Член 'MMRI.DAL.ITag.idContent' не имеет поддерживаемого перевода в SQL.

Код:

var d = repContent.GetAll().Where(x => x.idContent.Equals(idContent));
foreach (var tagConnect in d)    <- error line
{
    repContet.DeleteOnSubmit(tagConnect);

(он получает все теги из DB и удаляет их)

И стек trace:

[NotSupportedException: The member 'MMRI.DAL.ITag.idContent' has no supported translation to SQL.]
   System.Data.Linq.SqlClient.Visitor.VisitMember(SqlMember m) +621763
   System.Data.Linq.SqlClient.SqlVisitor.Visit(SqlNode node) +541
   System.Data.Linq.SqlClient.SqlVisitor.VisitExpression(SqlExpression exp) +8
   System.Data.Linq.SqlClient.SqlVisitor.VisitBinaryOperator(SqlBinary bo) +18
   System.Data.Linq.SqlClient.Visitor.VisitBinaryOperator(SqlBinary bo) +18
   System.Data.Linq.SqlClient.SqlVisitor.Visit(SqlNode node) +196
   System.Data.Linq.SqlClient.SqlVisitor.VisitExpression(SqlExpression exp) +8
   System.Data.Linq.SqlClient.SqlVisitor.VisitSelectCore(SqlSelect select) +46
   System.Data.Linq.SqlClient.Visitor.VisitSelect(SqlSelect select) +20
   System.Data.Linq.SqlClient.SqlVisitor.Visit(SqlNode node) +1024
   System.Data.Linq.SqlClient.SqlProvider.BuildQuery( ...

Когда я пытаюсь сделать украсить частичный класс:

[Column(Storage = "_idEvent", DbType = "Int NOT NULL", IsPrimaryKey = true)]
public int idContent
{ get { return this.idEvent; } set { this.idEvent=value; } }

он выдает ошибку "недопустимое имя столбца 'idContent'."

c#   linq   repository    

509   4   19:07, 14th August, 2020


LINQ-to-SQL против хранимых процедур?

Я взглянул на сообщение "Beginner's Guide to LINQ" здесь на StackOverflow ( руководство для начинающих к LINQ ), но у меня был следующий вопрос:

Мы собираемся развернуть новый проект, где почти все наши операции с базой данных будут довольно простыми извлечениями данных (есть еще один сегмент проекта, который уже записывает данные). Большинство наших других проектов до этого момента используют хранимые процедуры для таких вещей. Однако я хотел бы использовать LINQ-to-SQL, если это имеет больше смысла.

Итак, вопрос заключается в следующем: Для простого извлечения данных, какой подход лучше, LINQ-to-SQL или сохраненные procs? Какие-то конкретные " за " или "против"?

Спасибо.

linq   linq-to-sql   stored-procedures    

578   23   20:18, 12th August, 2020


Структура данных старения в C#

Мне нужна структура данных, которая позволит запрашивать, сколько элементов за последние X минут . Элемент может быть просто простым идентификатором или более сложной структурой данных, предпочтительно timestamp элемента будет находиться в элементе, а не храниться снаружи (как hash или аналогичный, не хотелось бы иметь проблемы с несколькими элементами, имеющими одинаковый timestamp).

До сих пор кажется, что с LINQ я мог бы легко фильтровать элементы с timestamp больше, чем заданное время и агрегировать количество. Хотя я не решаюсь попробовать работать .NET 3.5 конкретных вещей в моей производственной среде пока нет. Есть ли другие предложения для подобной структуры данных?

Другая часть, которая меня интересует, - это устаревание старых данных, если я буду запрашивать количество элементов менее 6 часов назад, я бы хотел, чтобы что-то более старое было удалено из моей структуры данных, потому что это может быть длительная программа.

c#   linq   .net-3.5   data-structures    

434   3   12:46, 23rd August, 2020


SQL Server 2008 vs 2005 Linq интеграция

Linq - SQL или Entity framework прекрасно интегрируются с SQL Server 2005.

Спецификация SQL Server 2008 обещает еще лучшую интеграцию, но я не вижу ее.

Каковы некоторые примеры того, что вы можете сделать Linq-wise при разговоре с сервером 2008, что вы не можете при разговоре с SQL Server 2005?

linq   sql-server-2005   sql-server-2008    

387   5   10:36, 22nd August, 2020


LINQ to SQL отображение от денег к двойнику

Я впервые работаю с LINQ и хотел бы, чтобы сопоставление работало, когда у меня есть денежный тип в SQL, но мое свойство объекта домена имеет тип double. Как я могу выразить это в файле XML или в коде, чтобы сопоставление не вызывало обычного исключения "invalid cast"?

linq   linq-to-sql   orm    

476   3   15:09, 29th August, 2020


Изучение LINQ

Обзор

Одна из вещей, о которых я много спрашивал на этом сайте, - это LINQ . Вопросы, которые я задавал, были широкими и разнообразными, и часто за ними не было большого контекста. Поэтому в попытке закрепить знания, которые я приобрел на Linq, я публикую этот вопрос с целью поддержания и обновления его дополнительной информацией по мере того, как я продолжаю изучать LINQ.

Я также надеюсь, что он окажется полезным ресурсом для других людей, желающих узнать о LINQ.

Что такое LINQ?

От MSDN :

Проект LINQ-это кодовое имя для a набор расширений для .NET Рамки, которые охватывают язык-интегрированный запрос, набор и операции преобразования. Он расширяет C# и Visual Basic с родным языком синтаксис для запросов и предоставляет класс библиотеки, чтобы воспользоваться этими преимуществами способности.

Это означает, что LINQ предоставляет стандартный способ запроса различных источников данных с использованием общего синтаксиса.

Какие ароматы LINQ существуют?

В настоящее время существует несколько различных поставщиков LINQ, предоставляемых корпорацией Майкрософт:

  • Linq к объектам , что позволяет выполнять запросы к любому объекту IEnumerable.
  • От Linq до SQL , что позволяет выполнять запросы к базе данных в объектно-ориентированном виде.
  • От Linq до XML , что позволяет запрашивать, загружать, проверять, сериализовывать и манипулировать документами XML.
  • Linq to Entities по предложению Андрея
  • Linq к набору данных

Есть довольно много других, многие из которых перечислены здесь .

Какие же это преимущества?

  • Стандартизированный способ запроса нескольких источников данных
  • Безопасность запросов во время компиляции
  • Оптимизированный способ выполнения операций на основе наборов для объектов в памяти
  • Возможность отладки запросов

Так что же мне делать с LINQ?

Chook предоставляет способ вывода CSV файлов
Джефф показывает, как удалить дубликаты из массива
Боб получает четкий упорядоченный список из datatable
Марксидад показывает, как сортировать массив
Дана получает помощь в реализации быстрой сортировки с помощью Linq

С чего начать?

Краткое содержание ссылок из вопроса GateKiller приведено ниже :
Скотт Гатри приводит вступление к Linq в своем блоге
Обзор LINQ на MSDN

ChrisAnnODell предлагает проверить

linq   linq-to-sql   linq-to-entities   linq-to-objects    

446   9   16:57, 9th August, 2020


Как найти реализацию интерфейса C# в текущей assembly с определенным именем?

У меня есть интерфейс под названием IStep , который может выполнять некоторые вычисления (см. " Выполнение в Царстве существительных "). Во время выполнения я хочу выбрать соответствующую реализацию по имени класса.

// use like this:
IStep step = GetStep(sName);

c#   linq   reflection   linq-to-objects    

471   4   13:29, 21st August, 2020


Linq для SQL - базовой длины столбца

Я использую Linq для SQL в течение некоторого времени, и я нахожу его очень полезным и простым в использовании. С другими инструментами ORM, которые я использовал в прошлом, объект entity, заполненный из базы данных, обычно имеет свойство, указывающее длину базового столбца данных в базе данных. Это полезно в ситуациях привязки данных, когда можно установить свойство MaxLength на textbox, например, чтобы ограничить длину ввода, введенного пользователем.

Я не могу найти способ с помощью Linq до SQL получить длину базового столбца данных. Кто-нибудь знает, как это сделать? Помогите пожалуйста.

linq-to-sql    

384   3   17:22, 1st August, 2020


Отношения внешних ссылок в dbml

Так что у меня есть схема базы данных, как это:

Пользователи
UserId

RoleUserXRef
RoleUserId
RoleId
UserId


Роли
RoleId
Имя


С внешними ключами, определенными между ролями пользователя & RoleUserXRef и RoleUserXRef &. В принципе, у меня есть один ко многим отношениям между пользователями и ролями.

Как бы я смоделировал это в dbml, чтобы созданный пользовательский класс имел список ролей, которые пользователь назначил им?


oop   linq-to-sql   many-to-many    

454   1   09:12, 5th August, 2020


Как я могу использовать Linq для подкачки общей коллекции?

У меня есть объект типа System.Generic.Collections.List(Of MyCustomClass).

Учитывая целочисленные вариабли pagesize и pagenumber, как я могу запросить только одну страницу MyCustomClass объектов?

.net   linq   .net-3.5   paging    

390   2   21:06, 24th August, 2020


Я что-то упустил насчет LINQ?

Кажется, я что-то упускаю из виду LINQ. Мне кажется, что он берет некоторые элементы SQL, которые мне нравятся меньше всего, и перемещает их в язык C# и использует их для других вещей.

Я имею в виду, что я мог видеть преимущество использования SQL-подобных утверждений на вещах, отличных от баз данных. Но если бы я хотел написать SQL, ну, почему бы просто не написать SQL и не сохранить его из C#?, что я здесь упускаю?

c#   sql   linq    

490   6   22:38, 19th August, 2020


Насмешливый и IQueryable

Я столкнулся с проблемой при попытке проверить следующие IRepository на основе NHibernate:

public class NHibernateRepository<T>: Disposable, IRepository<T> 
    where T : IdentifiableObject
{
    ...

    public IQueryable<T> Query()
    {
        return NHibernateSession.Linq<T>();
    }
}

Как, черт возьми, издеваться над возвращением IQueryable<T> таким образом, что он возвращает данную коллекцию в обмен на определенное выражение. Я чувствую, что у меня есть некоторое непонимание IQueryable<T> ...

linq    

344   1   20:32, 18th August, 2020


IntelliSense для объектов XElement со схемой XML

Читая статью под названием "Increase LINQ Query Performance" в июльском журнале MSDN, автор утверждает, что использование Imports в VB, предоставляющего путь к схеме в текущем проекте, включит IntelliSense для XElement. В предоставленном коде он использует операторы типа xelement.@name для восстановления значений атрибутов и так далее.

Я не пробовал это сам в VB, но я хотел бы использовать это в C#., это действительно похоже на LINQ до XSD.

Есть ли эквивалент в C#? кажется, что невозможно использовать пространство имен внутри кода C#, нет эквивалента using для этого оператора Import .

c#   linq   xsd   linq-to-xml   vb.net-to-c#    

471   1   09:46, 8th August, 2020


Linq 2 SQL на общем хосте

Недавно я столкнулся с проблемой с linq на общем хосте.
Хост-это общий интеллект, и они поддерживают v3.5 фреймворка. Однако я не уверен, установлен ли у них SP1. Мое подозрение заключается в том, что они не.

У меня есть простая таблица News , которая имеет следующую структуру:

NewsID          uniqueidentifier
Title           nvarchar(250)
Introduction    nvarchar(1000)
Article         ntext
DateEntered     datetime (default getdate())
IsPublic        bit (default true)

Моя цель-отобразить 3 самых последних записи из этой таблицы. Я изначально пошел по методу D&D (я знаю, я знаю) и создал источник данных linq и не смог найти способ ограничить результаты так, как я хотел, поэтому я удалил это и написал следующее:

var dc = new NewsDataContext();
var news = from a in dc.News
           where a.IsPublic == true
           orderby a.DateEntered descending
           select new { a.NewsID, a.Introduction };
lstNews.DataSource = news.Take(3);
lstNews.DataBind();

Это прекрасно работало на моей локальной машине.

Однако, когда я загрузил все на общий хост, я получил следующую ошибку:

.Read_<>f__AnonymousType0`2
(System.Data.Linq.SqlClient.Implementation.ObjectMaterializer`1<System.Data.SqlClient.SqlDataReader>) 
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.MethodAccessException: 
.Read_<>f__AnonymousType0`2
(System.Data.Linq.SqlClient.Implementation.ObjectMaterializer`1<System.Data.SqlClient.SqlDataReader>)

Я попытался найти ошибку в Google, но не встретил успеха. Затем я попытался изменить свой запрос всеми возможными способами, удаляя различные комбинации параметров where/orderby, а также ограничивая мой запрос одним столбцом и даже удаляя команду Take .

Поэтому мой вопрос состоит из 3 частей:

  1. Кто-нибудь еще сталкивался с этим, и если да, есть ли исправление "quick"?
  2. Есть ли способ использовать источник данных для ограничения строк?
  3. Есть ли способ определить, какая версия фреймворка общего хоста не хватает для отправки их по электронной почте напрямую (что я сделал и жду ответа)

linq-to-sql   hosting   shared    

428   1   17:27, 9th August, 2020


NHibernate против LINQ до SQL

Как человек, который не использовал ни одну из этих технологий в реальных проектах, мне интересно, знает ли кто-нибудь, как эти две технологии дополняют друг друга и насколько их функциональные возможности пересекаются?

linq   nhibernate   linq-to-sql   orm    

541   9   15:01, 8th August, 2020


Общее количество строк в элементе управления GridView с использованием LinqDataSource и подкачки

У меня есть проблема с получением общего количества строк для элементов, отображаемых в A Gridview с помощью подкачки и с A LinqDataSource в качестве источника данных.

Я испробовал несколько подходов:

protected void GridDataSource_Selected(object sender, LinqDataSourceStatusEventArgs e)  
{  
    totalLabel.Text = e.TotalRowCount.ToString();  
}

возвращает -1 каждый раз.

protected void LinqDataSource1_Selected(object sender, LinqDataSourceStatusEventArgs e)  
{  
    System.Collections.Generic.List<country> lst  = e.Result as System.Collections.Generic.List<country>;  
    int count = lst.Count;  
}

только дает мне подсчет для текущей страницы, а не общее количество.

Есть еще какие-нибудь предложения?

c#   asp.net   linq   gridview    

430   5   17:37, 15th August, 2020


Лучший способ получить количество IEnumerable

Какой самый лучший / простой способ получить количество элементов в коллекции IEnumerable без перечисления всех элементов в коллекции?

Возможно с LINQ или Lambda?

c#   linq    

493   10   09:55, 26th August, 2020


Что заставляет Visual Studio не загружать assembly неправильно?

Я с удовольствием кодировал решение приличного размера (чуть более 13k LOC, 5 проектов), которое использует Linq to Sql для доступа к данным. Внезапно я выполнил нормальную сборку, и я получил сладкое, сладкое двусмысленное сообщение:

Ошибка 1 построение не удалось из-за ошибок проверки в C:\xxx\xxx.dbml. Откройте файл и устраните проблемы в списке ошибок, а затем попробуйте восстановить проект. C:\xxx\xxx.dbml

Я не прикасался к своему уровню доступа к данным в течение нескольких недель, и никакие изменения не были внесены в файл DBML. Я пробовал множество безрассудных трюков, таких как повторное создание файла макета, создание копий и повторное добавление существующих файлов обратно в проект после перезапуска Visual Studio (в случае повреждения на уровне файла); все безрезультатно.

Я забыл надеть свои талисманы Visual Studio Skills +5, поэтому я начал искать вокруг, и единственным ответом, который я нашел, который имел смысл, был сброс моих пакетов, потому что Visual Studio не загружала assembly правильно. После запуска "devenv.exe /resetskippkgs" я фактически смог добавить файл dbml обратно в проект DAL и перестроить решение.

Я рад, что это исправлено, но я бы предпочел также получить более глубокое понимание из этого опыта. Кто-нибудь знает, как и почему это происходит в Visual Studio 2008?

Новое редактирование: 10/30/2008 это было не то, что просто случилось со мной. Рич Штраль недавно написал на своем "web log" о том же опыте . Он ссылается на другой блог с той же проблемой и использовал то же действие .

Я столкнулся с этой проблемой несколько раз с момента этого оригинального сообщения, заставляя меня думать, что это не какая-то случайная проблема. Если кто-то найдет окончательный ответ, пожалуйста, напишите.

visual-studio   visual-studio-2008   linq-to-sql    

476   4   15:56, 3rd August, 2020


Самый крутой C# LINQ/лямбда-трюк, который вы когда-либо вытягивали?

Видел пост о скрытых функциях в C#, но не многие люди написали linq / lambdas пример так... Я удивляюсь...

Каково самое крутое (как и самое элегантное) использование C# LINQ и/или лямбды / анонимных делегатов, которые у вас когда-либо были saw/written?

Бонус, если он тоже пошел в производство!

c#   linq   functional-programming   lambda    

609   14   05:33, 11th August, 2020


Linq - SQL: могу ли я загрузить только одно поле в объединенную таблицу?

У меня есть одна таблица "orders" с ключом foreing "ProductID".

Я хочу показать заказы в сетке с названием продукта, без LazyLoad для лучшей производительности, но если я использую DataLoadOptions , он извлекает все поля продукта, что выглядит как перебор .

Есть ли способ получить только название продукта в первом запросе? Можно ли установить какой-то атрибут в DBML?

В этой таблице говорится, что "Foreign-key values"-это "Visible" в Linq-SQL, но не знаю, что это значит.

Edit: изменил название, потому что я действительно не уверен, что нет никакого решения.
Не могу поверить, что ни у кого нет такой же проблемы, это очень распространенный сценарий.

.net   sql   performance   linq-to-sql    

490   3   03:13, 12th August, 2020


Как отслеживать запросы на Linq-to-sql DataContext

В подкасте herding code 14 кто-то упоминает, что stackoverflow отображает запросы, которые были выполнены во время запроса в нижней части страницы.

По-моему, это отличная идея. Каждый раз, когда страница загружается, я хочу знать, какие операторы sql выполняются, а также подсчет общего числа DB поездок туда и обратно. Есть ли у кого-нибудь аккуратное решение этой проблемы?

Как вы думаете, какое количество запросов является приемлемым? Я думал, что во время разработки мое приложение может выдать исключение, если для отображения страницы требуется более 30 запросов.

EDIT: мне кажется, я не совсем ясно объяснил свой вопрос. Во время запроса HTTP веб-приложение может выполнить десяток или более операторов sql. Я хочу, чтобы эти утверждения были приложены к нижней части страницы вместе с подсчетом количества утверждений.

ВОТ МОЕ РЕШЕНИЕ:

Я создал класс TextWriter, в который может записываться DataContext:

public class Logger : StreamWriter
    {
        public string Buffer { get; private set; }
        public int QueryCounter { get; private set; }

        public Logger() : base(new MemoryStream())
        {}

        public override void Write(string value)
        {
            Buffer += value + "<br/><br/>";
            if (!value.StartsWith("--")) QueryCounter++;
        }

        public override void WriteLine(string value)
        {
            Buffer += value + "<br/><br/>";
            if (!value.StartsWith("--")) QueryCounter++;
        }
    }

В конструкторе DataContext я настроил регистратор:

public HeraldDBDataContext()
        : base(ConfigurationManager.ConnectionStrings["Herald"].ConnectionString, mappingSource)
    {
        Log = new Logger();
    }

Наконец, я использую событие Application_OnEndRequest , чтобы добавить результаты в нижнюю часть страницы:

protected void Application_OnEndRequest(Object sender, EventArgs e)
    {
        Logger logger = DataContextFactory.Context.Log as Logger;
        Response.Write("Query count : " + logger.QueryCounter);
        Response.Write("<br/><br/>");
        Response.Write(logger.Buffer);
    }

asp.net   linq-to-sql    

596   4   22:44, 24th August, 2020