Вместо того, чтобы соединить контейнеры, необходимо использовать ReaderWriterLockSlim. Это дает Вам базу данных как блокировка - бесконечное число средств чтения, одного устройства записи и возможности обновления.
Что касается шаблонов разработки, pub/sub вполне прилично устанавливается и очень легкий записать в.NET (использующий readerwriterlockslim). В нашем коде мы сделали, чтобы MessageDispatcher возразил, что все добираются. Вы подписываетесь на него, или Вы отсылаете сообщение абсолютно асинхронным способом. Все, что необходимо соединить, является зарегистрированными функциями и любыми ресурсами, что они продолжают работать. Это делает многопоточность намного легче.
'=' недействителен ANSI SQL, поэтому у вас возникнут трудности, если вы захотите запустить свое приложение на другой СУБД.
(Это когда форма ANSI используется, но необязательный «AS» опущен, лично мне трудно читать результаты.)
** даже я предпочитаю использовать «как» вместо «=». '=' вносит путаницу в код.
например:
column as alias1
Вам не обязательно использовать
Отбросьте AS и используйте
SELECT originalname alias
FROM
tablename
While I have a preference for using AS, the really key thing here is to have a corporate standard and to follow it. If more of your people use AS than = then everyone should use it. Coding standards are what makes it easier to maintain code not the particular standard you pick. If everyone uses the same thing, then your eye gets used to picking it out.
Мне нравится
SELECT
column1 = table.column1
,column2 = table.colum2
FROM table
Я считаю AS не так легко заметным по сравнению со знаком = (я могу определить = быстрее, чем AS)
Также, когда вы просто выполняете SELECT псевдоним столбца, иногда непонятно, какой из них какой :)
Псевдонимы столбцов, объявленные синтаксисом "=", устарели в SQL Server 2008 и не поддерживаются в следующей версии. См. статью MSDN .
Я предпочитаю использовать AS
, поскольку =
используется в инструкции where и может сбивать с толку в длинном запросе.
Форма постфиксного псевдонима (с или без "AS") согласована между псевдонимами столбца и таблицы. Лично я хотел бы иметь возможность принудительно использовать AS, и тогда у вас не было бы ситуации:
select
columnA,
columnB
columnC
from
table
создание набора результатов с двумя столбцами вместо ожидаемых 3.
Я бы также скажем, что с префиксом "=" форма может затруднить чтение, если вы смешиваете получение набора результатов и присвоение переменной:
select
cA = columnA,
@cB = columnB,
cC = columnC
from
table
Я предпочитаю не использовать ни один из них. Я просто даю имя столбца без каких-либо ключевых слов между
SELECT MAX(price_column) maximumprice FROM prices
= можно спутать с уступка и равенство; на самом деле, форма, которая мне действительно не нравится, - это когда она выглядит как строка (обычно с пробелами):
somecolumn as 'alias 1'
или
'alias 1' = somecolumn
Я предпочитаю альтернативную запись:
somecolumn as [alias 1]
"=" просто неоднозначно.
Если вы сделаете отступ, чтобы разбить каждое предложение выбора ...
select
alias1 = somecolumn,
alias2 = anothercolumn,
result = column1 * column2
from
table
....
select
somecolumn as alias1,
anothercolumn as alias2,
column1 * column2 as result
from
tables
...
Я бы не стал использовать его просто, поскольку он слишком похож на операцию равенства. 'AS' ясно, поскольку для меня это не двусмысленно.
Это то же самое, что и неиспользование верхнего регистра в sql, мне труднее читать.
Чтобы добавить некоторый противовес, я предпочитаю использовать =.
Если я каким-то образом являюсь потребителем результатов запроса, мне удобнее видеть, какие столбцы я как потребитель могу использовать.
Я предпочитаю этот
SELECT
[ElementObligationID] = @MaxElementObligationID + eo.ElementObligationID
, [ElementID] = eo.ElementID
, [IsotopeID] = eo.IsotopeID
, [ObligationID] = eo.ObligationID
, [ElementWeight] = eo.ElementWeight * -1
, [FissileWeight] = eo.FissileWeight * -1
, [Items] = eo.Items * -1
, [Comment] = eo.Comment
, [AdditionalComment] = eo.AdditionalComment
, [Aanmaak_userid] = @UserID
, [Aanmaak_tijdstip] = GetDate()
, [Laatste_wijziging_userid] = @UserID
, [Laatste_wijziging_tijdstip] = GetDate()
FROM dbo.KTM_ElementObligation eo
INNER JOIN dbo.KTM_ElementObligationArticle eoa ON
eoa.ElementObligationID = eo.ElementObligationID
этому
SELECT
@MaxElementObligationID + eo.ElementObligationID AS [ElementObligationID]
, eo.ElementID AS [ElementID]
, eo.IsotopeID AS [IsotopeID]
, eo.ObligationID AS [ObligationID]
, eo.ElementWeight * -1 AS [ElementWeight]
, eo.FissileWeight * -1 AS [FissileWeight]
, eo.Items * -1 AS [Items]
, eo.Comment AS [Comment]
, eo.AdditionalComment AS [AdditionalComment]
, @UserID AS [Aanmaak_userid]
, GetDate() AS [Aanmaak_tijdstip]
, @UserID AS [Laatste_wijziging_userid]
, GetDate() AS [Laatste_wijziging_tijdstip]
FROM dbo.KTM_ElementObligation eo
INNER JOIN dbo.KTM_ElementObligationArticle eoa ON
eoa.ElementObligationID = eo.ElementObligationID
, только мой 2c.
Я знаю три известных мне псевдонима:
Re: 1), я предпочитаю это как есть самый самодокументированный код (IMO), и он позволяет мне искать AS
, если мне нужно найти псевдонимы ..
Re: 2). Это мой второй выбор, но без ] AS
, я никогда не уверен, была ли это ошибка вырезания и вставки, особенно в длинных, плохо отформатированных запросах.
Re: 3), мне это не нравится, потому что а) это выглядит как присваивание, и б) оно слишком сочетается с предложениями ON
и операторами CASE
Итак, я голосую за использование ключевого слова AS
для ваших псевдонимов.