сотрудников.DbScanExpression with join and left table select
У меня есть группа классов (таблиц), которые имеют некоторые общие свойства (столбцы). То, что я хотел бы сделать, это использовать запросы EntityFramework для перехвата и изменять их.
Я хотел бы добавить join и some where where. Но не знаю, как проецировать левую таблицу без явного выбора свойств.
Первоначальный запрос, как это: context.Loans
SQL
SELECT
[LoanNumber] AS [LoanNumber],
[SEC_OWNER] AS [SEC_OWNER]
FROM [dbo].[Loans]
должен быть изменен следующим образом:
SELECT
O.LoanNumber AS LoanNumber,
O.SEC_OWNER AS SEC_OWNER,
FROM dbo.Loans AS O
LEFT OUTER JOIN dbo.Users U
ON
O.SEC_OWNER = U.SEC_ID
AND
U.Name = N'root'
WHERE
((256 = (O.SEC_PERMISSIONS & 256))
AND
(O.SEC_OWNER = U.SEC_ID))
var joinExpression = expression.LeftOuterJoin(
userEntityBase.Scan(),
(l, r) =>
l.Property("SEC_OWNER").Equal(r.Property("SEC_ID"))
.And(r.Property("Name").Equal(DbExpression.FromString(this.UserName)))
)
.Where(
exp =>
DbExpressionBuilder
.Constant((int)AccessPermissions.OwnerRead).Equal(exp.Property("l").Property("SEC_PERMISSIONS").BitwiseAnd(DbExpressionBuilder.Constant((int)AccessPermissions.OwnerRead)))
.And(exp.Property("l").Property("SEC_OWNER").Equal(exp.Property("r").Property("SEC_ID")))
);
Как я понимаю присоединиться проекты столбцы как таблицы. Но мне нужно проецировать только начальный выбор, не зная об этом.
SELECT
[LoanNumber] AS [LoanNumber],
[SEC_OWNER] AS [SEC_OWNER]
Спасибо заранее,
/Артем