Не сохраняйте связанный объект в Linq To Sql - PullRequest
0 голосов
/ 12 февраля 2010

У меня есть субъект (адрес), в котором есть связанный субъект (страна).

  <Table Name="dbo.Address" Member="Address">
    <Type Name="TS.Club.Domain.Model.ValueObject.Address">
      <Column Name="Identifier" Member="Identifier" DbType="UniqueIdentifier NOT NULL IDENTITY" IsPrimaryKey="true" IsDbGenerated="false" AutoSync="OnInsert" />
      <Column Name="ReferenceIdentifier" Member="ReferenceIdentifier" DbType="UniqueIdentifier NOT NULL"/>
      <Column Name="CountryIdentifier" Member="CountryIdentifier" DbType="UniqueIdentifier NOT NULL"/>
      <Column Name="StreetAddress" Member="StreetAddress" DbType="Varchar(512)"/>
      <Column Name="ZipCode" Member="ZipCode" DbType="Varchar(8)"/>
      <Column Name="City" Member="City" DbType="Varchar(512)"/>
      <Column Name="AddressType" Member="Type" DbType="tinyint"/>

      <Association Member="Country" ThisKey="CountryIdentifier" IsForeignKey="true" DeleteRule="NO ACTION" />
    </Type>
  </Table>

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

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

1 Ответ

0 голосов
/ 17 февраля 2010

Вы создаете новую копию страны для каждого адреса?
Как правило, это неправильный подход. Попробуйте выбрать существующую сущность следующим образом:

Country cc = from c 
db.Countries where c.CountryIdentifier == neededID select c;
...