Это Windows форма, я новичок, и у меня нет тонны навыков, но я понимаю,
у меня есть 5 таблиц
layer = layerID int, layerName string (layerID = = PK)
Gor = LayerID int, GroID int, строка GroNnumber (GroID = PK и LayerID = FK)
Gru = GruID int, GroID int, строка GruNumber (GruID = PK и GorID = FK)
Das = GruID int, DasID int, строка DasNumber (DasID = PK и GruID = FK)
Grop = GropID int, DasID int, строка GropNumber (GropID = PD и DasID = FK)
все эти 5 табличных отношений (PK - FK)
Я использую Join для чтения всех данных из этой 5 таблицы, и мой код также работает, и я могу видеть все свои данные из всех 4 таблицы внутри моего datagridview
это мой код
using (UnitOfWork db = new UnitOfWork())
{
DGVCharts.AutoGenerateColumns = false;
var result = from layer in db.LayerRepository.Get()
join gor in db.GorRepository.Get() on layer.LayerID equals gor.LayerID
join gru in db.GruRepository.Get() on gor.GorID equals gru.GorID
join das in db.DasRepository.Get() on gru.GruID equals das.GruID
join grop in db.GropRepository.Get() on das.DastehID equals grop.DastehID
select new
{
layer.LayerID,
layer.LayerName,
gor.GorID,
gor.GorNumber,
gru.GruID,
gru.GruNumber,
das.DasID,
das.DasNumber,
grop.GropID,
grop.GropNumber,
};
DGVCharts.DataSource = result.ToList();
}
}
'' '
это моя последняя таблица
Position = PositionID int, PositionCharts string, PositionName string
Данные PositionCharts = (Данные GruNumber, Данные DasNumber, Данные GroNumber)
Данные Примерно так
GruNumber, DasNumber, GropNumber
Gru01, Das01, Grop01
Gru02, Das02, Grop02
FreeGru01, FreeDas01, FreeGrop01
PositionCharts: PositionName
FreeGru01: Мастер
FreeDas01: Пользователь
FreeGrop01: Босс
i используйте этот код для присоединения к этим данным, если (GruNumber или DasNumber или GropNumber = positioncharts), тогда я также вижу PositionName в моем представлении данных
Я изменяю свой код на этот код
'' '
using (UnitOfWork db = new UnitOfWork())
{
DGVCharts.AutoGenerateColumns = false;
var result = from layer in db.LayerRepository.Get()
join gor in db.GorRepository.Get() on layer.LayerID equals gor.LayerID
join gru in db.GruRepository.Get() on gor.GorID equals gru.GorID
join das in db.DasRepository.Get() on gru.GruID equals das.GruID
join grop in db.GropRepository.Get() on das.DastehID equals grop.DastehID
join position in db.PositionRepository.Get() on gru.GruNumber || das.DastehNumber || grop.GroupNumber equals position.PositionCharts
select new
{
layer.LayerID,
layer.LayerName,
gor.GorID,
gor.GorNumber,
gru.GruID,
gru.GruNumber,
das.DasID,
das.DasNumber,
grop.GropID,
grop.GropNumber,
position.PositionID,
position.PositionName
};
DGVCharts.DataSource = result.ToList();
}
}
'' 'но после использования этого кода я получаю эту ошибку
operator' || ' не может применяться к операндам типа 'string' и 'string'
я меняю код на этот
'' '
join position in db.PositionRepository.Get() on
gru.GruNumber equals position.PositionCharts ||
das.DastehNumber equals position.PositionCharts ||
grop.GroupNumber equals position.PositionCharts
' ''
не работает
и это
'' '
join position in db.PositionRepository.Get() on
(gru.GruNumber equals position.PositionCharts ||
das.DastehNumber equals position.PositionCharts ||
grop.GroupNumber equals position.PositionCharts)
' ''
не работает!
как я можно решить эту проблему?