LINQPad игнорирует ссылку на сборку

Я добавил ссылку (пакет NuGet), как описано здесь, но LINQPad не распознает ее.

LINQPad игнорирует ссылку на сборкуLINQPad игнорирует ссылку на сборку

Вот мой запрос:

Sub Main
    Dim iImportList As New List(Of Integer)
    Dim oSearch As New List(Of Match)

    For i = 1 To 226
        iImportList.Add(i)
    Next

    Using oDb As Db.Context = Db.Context.Create
      oSearch.Add(From A In oDb.Applicants
                  Join C In oDb.Customers On
                      A.FirstName Equals C.FirstName And
                      A.LastName Equals C.LastName And
                      A.Ssn Equals C.Ssn And
                      A.Dob Equals C.Dob
                  Where
                      C.TotalBalance > 0 AndAlso
                      A.Aln.StartsWith(DateTime.Now.Year) AndAlso
                      iImportList.Contains(C.ImportId)
                  Select
                      New Match With {
                          .ApplicantId = A.ApplicantId,
                          .CustomerId = C.CustomerId,
                          .MatchLevel = Db.Match.MatchLevels.FirstLastSsnDob
                      })
    End Using
End Sub

Class Match
    Public Property ApplicantId As Integer
    Public Property CustomerId As Integer
    Public Property MatchLevel As Db.Match.MatchLevels
End Class

... и вот результат:

LINQPad игнорирует ссылку на сборку

Как мы видим, LINQPad игнорирует мою ссылку SQLCE и вместо нее использует ссылку SQL. (Ссылка System.Data, по-видимому, является внутренней для LINQPad; я не добавлял ее.)

Как я могу заставить LINQPad делать противоположное - игнорировать ссылку SQL и использовать ссылку SQLCE по назначению?

Тип подключения определяется только тем, что происходит в Db.Context.Create.

Gert Arnold 04.11.2018 11:30

@GertArnold ~ Это имеет смысл, но сборка System.Data.SqlServerCe находится рядом с Db.dll, сборкой, которая содержит мой контекст. Приложение отлично работает с Visual Studio или из командной строки. Я не уверен, что еще нужно сделать, чтобы LINQPad перестал использовать System.Data по умолчанию для создания соединения. (Я использую System.Data.SqlServerCe.SqlCeConnectionStringBuilder для построения строки.)

InteXX 05.11.2018 06:36
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
2
293
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Это похоже на проблему разрешения сборки во время выполнения - что-то ожидает, что System.Data.SqlServerCe.dll будет в выходной папке.

Нажмите F4 для просмотра свойств запроса, перейдите на вкладку «Дополнительно» и выберите вариант копирования всех ссылок, не относящихся к платформе, в одну папку. Это гарантирует, что сборки среды выполнения будут доступны для обнаружения.

Боюсь, это не сработало. "copy all non-framework references to a single folder" Какая это будет папка? Я хочу убедиться, что все скопировано правильно.

InteXX 16.11.2018 03:23

Можете ли вы воспроизвести это? Если хотите, могу выслать вам образец проекта.

InteXX 16.11.2018 09:11

Нет, воспроизвести не могу. Я не знаю, откуда берется Db.Context. Папку вывода можно найти с помощью запроса типа typeof (somethingInDb.dll).

Joe Albahari 17.11.2018 10:42

Хорошо понял. См. Мой комментарий к @erikej выше. Многословие в диалоговом окне свойств подключения подразумевает, что единственная причина указать на файл App.config - это строка подключения. Но есть и другие необходимые записи конфигурации, независимо от того, создается ли строка подключения во время выполнения или нет.

InteXX 18.11.2018 00:44

@JoeAlbahari Согласитесь, путь app.config часто требуется для других записей конфигурации EF6

ErikEJ 18.11.2018 10:25
Ответ принят как подходящий

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

EF DbContext Connection Dialog

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

InteXX 17.11.2018 21:28

Хорошо, я понял это при создании репро-проекта. Я не включил мое местоположение App.config в свойства соединения LINQPad. Сначала я не думал, что мне нужно, поскольку я создаю строку подключения во время выполнения, но я забыл о других необходимых записях конфигурации там. Как только я добавил местоположение, оно прошло насквозь. Спасибо!

InteXX 18.11.2018 00:29

Другие вопросы по теме