Linq к SQL - не выбирают конкретный столбец

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

Это функция, которая создает электронное приложение:

Electron.js

function createWindow() {
  mainWindow = new BrowserWindow({frame: false, titleBarStyle: 'hidden' ,width: 800, height: 1000, backgroundColor: '#FFFFFF' });
  mainWindow.loadURL(
    isDev
      ? "http://localhost:3000"
      : `file://${path.join(__dirname, "../build/index.html")}`
  );

После изменения параметра рамки окна на следующее всплывающие подсказки снова работают:

frame: false

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

17
задан Lucas 28 May 2009 в 17:02
поделиться

4 ответа

Спасибо всем за ваш вклад. Последнее решение, на котором я остановился, - просто указать столбцы, которые я хочу вернуть, НО сделать это в операторе Linq в новом объекте того типа, который я хочу ... пример должен помочь!:

Журнал таблиц содержит три столбца

  • LogID
  • DateLogged
  • SerializedData

Но мне нужны только данные DateLogged & Serialized. Однако мне бы хотелось, чтобы этот в контейнере данных, созданный SQLMetal

, достиг этого с помощью следующего оператора:


Dim q = From logItem In dc.Log Select New Log With {.LogID = logItem .LogID, .DateLogged = logItem.DateLogged}


Надеюсь, это поможет кому-то еще!

1
ответ дан 30 November 2019 в 13:21
поделиться

If you are extremely lazy, why not add the table a second time via DBML designer, rename it MyTableWithOutColumnX then delete the record you don't want returned? Just hilite the column name and hit delete.

Its sloppy, but then, to a certain degree, so is having a table where a record shouldn't appear sometimes. More then anything, it is easy, its all abstracted in the DBML so it shouldnt impact your code, other than switching which table to access. Well named, it might even make sense to someone maintaining your code in the distant future.

4
ответ дан 30 November 2019 в 13:21
поделиться

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

0
ответ дан 30 November 2019 в 13:21
поделиться

LINQ to SQL поддерживает отложенную загрузку отдельных свойств. В дизайнере DBML вы можете установить Delay Loaded на true в свойствах столбца. Столбцы, загруженные с задержкой, не будут включены в исходный SELECT . Если вы попытаетесь получить доступ к свойству объекта, а оно еще не было загружено, будет выполнен другой оператор SELECT , чтобы получить это значение из базы данных.

Если вы редактируете файл DBML вручную, set . Если вы пишете свои классы LINQ to SQL вручную, это так же просто, как объявить поддерживающее поле свойства как Link вместо T . Например:

[Table]
public class Person
{
    private Link<string> _name;

    [Column(Storage = "_name")]
    public string Name
    {
        get { return _name.Value; }
        set { _name.Value = value; }
    }
}

См. Также «Задержка / отложенная загрузка». раздел в этого сообщения Скотта Гатри .


Обновление: Приведенный выше ответ применим, если вы хотите, чтобы столбец оставался доступным, когда он вам нужен. Он не будет включен в SELECT , если вы специально не попросите его (см. LoadOptions ) или не попытаетесь получить к нему доступ.

Если вы просто не хотите использовать или получать доступ столбец вообще, и вы не хотите, чтобы он был доступен как свойство класса, тогда воспользуйтесь ответом Серапта об удалении столбца из файла DBML. Убедитесь, что вы понимаете последствия, такие как потеря проверки параллелизма в этом столбце.

Он не будет включен в SELECT , если вы специально не попросите его (см. LoadOptions ) или не попытаетесь получить к нему доступ.

Если вы просто не хотите использовать или получать доступ столбец вообще, и вы не хотите, чтобы он был доступен как свойство класса, тогда воспользуйтесь ответом Серапта об удалении столбца из файла DBML. Убедитесь, что вы понимаете последствия, такие как потеря проверки параллелизма в этом столбце.

Он не будет включен в SELECT , если вы специально не попросите его (см. LoadOptions ) или не попытаетесь получить к нему доступ.

Если вы просто не хотите использовать или получать доступ столбец вообще, и вы не хотите, чтобы он был доступен как свойство класса, тогда воспользуйтесь ответом Серапта об удалении столбца из файла DBML. Убедитесь, что вы понимаете последствия, такие как потеря проверки параллелизма в этом столбце.

18
ответ дан 30 November 2019 в 13:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: