对于Dynamics CRM 2011,Microsoft建议通过将更改打包为托管(或非托管)解决方案,将实体自定义从DEV移动到PRD.非托管是不好的,因为您无法在需要时删除实体(删除解决方案只删除容器,解决方案中包含的实体仍然存在).在培训期间的大多数实验示例中,您将自定义系统,然后将自定义实体导出为托管解决方案,然后将其导入生产中.这种基于解决方案的方法很简洁,可以更容易地控制PRD中的内容,将相关实体捆绑在一起,跟踪依赖性等,所以我明白了.
但是,有时您需要在DEV服务器上转储组织并从PRD恢复(以解决特定于数据的问题或其他原因).我们这样做是通过禁用,然后删除DEV组织,然后要求DBA团队从生产中恢复CRM数据库,然后我们将组织导回DEV服务器.但是,如果我们实施这种基于"托管解决方案"的变更迁移流程,在我们转储DEV并从PRD重新创建它后,我们是否会失去更改我们实体的能力,而这些解决方案处于只读模式?如果我们在这些托管解决方案中启用自定义,我们是否能够在解决方案中添加新实体或从解决方案中删除实体而不删除整个解决方案?因为我认为托管解决方案被视为一个单独的代码单元,所以它要么全部删除,要么全部删除.有兴趣了解其他人如何解决这个问题.
我有一个选择查询,如下所示:
SELECT
ROW_NUMBER() OVER (ORDER BY T.TitleId) as Row,
T.TitleId as TitleID,
T.TitleSort as TitleName,
TT.Description as TitleType,
TS.Description as TitleOrigin,
--get genres
(select Genre.Description + ', ' from Genre where GenreId IN
(Select GenreId from TitleGenre WHERE TitleId = T.TitleId)
group by Genre.Description for xml path('')) AS Genres, ....
Run Code Online (Sandbox Code Playgroud)
这段代码有效,但我找不到摆脱最后一个逗号的方法.这是返回的行的样子:
Action, Drama, Romance,
Run Code Online (Sandbox Code Playgroud)
我需要在不使用函数或声明变量的情况下删除最后一个逗号,就在查询中.那可能吗?提前感谢您的回答.
可能重复:
C#对象的事务?
我的问题是 - 确保给定段中的所有代码都执行或者根本不执行任何操作的最佳方法是什么?尝试Catch在这种情况下不起作用,因为如果第1行是更新,它将发生,然后如果第2行发送电子邮件并且由于某种原因失败,它将抛出异常,但更新将发生已经(而我想要的是这样的 - >如果第40行失败,不要执行第20行).
我知道在数据库方面你可以使用Transactions,但我想知道代码中是否有相同的...