Взаимосвязь между двумя таблицами на разных значениях ключейC#

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

Сообщение Anonymous »

Допустим, у меня есть две таблицы Business и владелец . Business будет основной таблицей, а владелец будет ссылаться на эту таблицу. Тем не менее, вот где это становится странным для меня, и почему я хочу выяснить это с помощью основного ядра Entity.

Код: Выделить всё

ID (int)
Name (varchar 50)
...

public class Business
{
public int ID { get; set; }
public string Name { get; set; }
// ...
}
Владелец таблицы

Код: Выделить всё

ID (int)
Name (varchar 50)
PrimaryBusinessID (int)
SecondaryBusinessID (int)
IsActive (bit)
...

public class Owner
{
public int ID { get; set; }
public string Name { get; set; }
public int PrimaryBusinessID { get; set; }
public int? SecondaryBusinessID { get; set; }
public bool IsActive { get; set; }
// ...
}
< /code>
В SQL, который уже существует для этой системы, мы пытаемся найти активных владельцев. И бизнес может иметь первичного или второстепенного владельца. Тем не менее, это соединение выполняется на стороне владельца 
, а не на стороне Business , которая кажется мне отсталым ... но это не схема базы данных, которую я могу прикоснуться и изменить, поэтому мне приходится иметь дело с тем, что у меня есть. Единственный способ узнать, есть ли у них основной владелец или второстепенный владелец, у которого есть флаг Isactive , установленный True.SELECT DISTINCT B.ID, B.Name
FROM Business B
LEFT OUTER JOIN
(SELECT PrimaryBusinessID, SecondaryBusinessID
FROM Owner
WHERE IsActive = 1) AS O ON B.ID = O.PrimaryBusinessID
OR B.ID = O.SecondaryBusinessID
< /code>
Опять же, хотя я думаю, что этот SQL и схема должны быть обновлены и работают над тем, что я не могу сделать. Поэтому я стараюсь оставаться «правдой» к тому, что было написано раньше, и все еще получить те же результаты через ядро ​​рамки Entity.

Подробнее здесь: https://stackoverflow.com/questions/795 ... key-values
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»