linq2sql: удалить составной ключевой объект - PullRequest
0 голосов
/ 06 декабря 2018

Я не могу удалить список объектов из-за сгенерированного сценария SQL.Моя таблица в dbml-файле:

<Table Name="person.tblProcessedAward" Member="tblProcessedAwards">
    <Type Name="tblProcessedAward">
        <Column Name="AwardId" Type="System.Int32" DbType="Int NOT NULL IDENTITY" IsPrimaryKey="true" CanBeNull="false" />
        <Column Name="ContactId" Type="System.Int32" DbType="Int NOT NULL IDENTITY" IsPrimaryKey="true" CanBeNull="false" />
        <Column Name="ProcessedDateTime" Type="System.DateTime" DbType="DateTime" CanBeNull="false" />
        <Association Name="tblContact_tblProcessedAward" Member="tblContact" ThisKey="ContactId" OtherKey="ContactId" Type="tblContact" IsForeignKey="true" />
        <Association Name="tblAward_tblProcessedAward" Member="tblAward" ThisKey="AwardId" OtherKey="AwardId" Type="tblAward" IsForeignKey="true" />
    </Type>
</Table>

Invoking DeleteAllOnSubmit создает следующий журнал сценариев SQL для каждого элемента в последовательности:

-- @p0: Input Int (Size = -1; Prec = 0; Scale = 0) [3]
-- @p1: Input Int (Size = -1; Prec = 0; Scale = 0) [38211]
-- @p2: Input DateTime (Size = -1; Prec = 0; Scale = 0) [4/12/2018 2:21:18 PM]
DELETE FROM [person].[tblProcessedAward] WHERE ([AwardId] = @p0) AND ([ContactId] = @p1) AND ([ProcessedDateTime] = @p2)

Если я пытаюсь сделать SELECT вместо DELETE, я не получаю никаких строк.Если я удаляю последнее предложение AND ([ProcessedDateTime] = @p2), я получаю ровно одну строку, которую хочу удалить.Стоит отметить, что значение даты не совпадает

enter image description here

Вопрос: Как заставить linq2sql использовать только первичные ключи при создании сценариев SQL?А в чем проблема с датами?Тот же сервис вставляет строки и читает их.UPD: заметил еще одну проблему.Сначала я удаляю ссылочные объекты, а затем родительские.Запись в журнале SQL для родительского объекта:

DELETE FROM [person].[tblAward] WHERE 0 = 1
-- Context: SqlProvider(Sql2008) Model: AttributedMetaModel Build: 4.7.3056.0

Я хотел бы получить пояснения по поводу этого великолепного WHERE предложения

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...