我正在创建一个将在MS SQL服务器中运行的脚本.此脚本将运行多个语句,并且需要是事务性的,如果其中一个语句失败,则停止整体执行并回滚任何更改.
在发出ALTER TABLE语句以向表中添加列然后更新新添加的列时,我在创建此事务模型时遇到问题.为了立即访问新添加的列,我使用GO命令执行ALTER TABLE语句,然后调用我的UPDATE语句.我面临的问题是我无法在IF语句中发出GO命令.IF语句在我的事务模型中很重要.这是我尝试运行的脚本的示例代码.另请注意,发出GO命令会丢弃@errorCode变量,并且需要在使用之前在代码中声明(这不在下面的代码中).
BEGIN TRANSACTION
DECLARE @errorCode INT
SET @errorCode = @@ERROR
-- **********************************
-- * Settings
-- **********************************
IF @errorCode = 0
BEGIN
BEGIN TRY
ALTER TABLE Color ADD [CodeID] [uniqueidentifier] NOT NULL DEFAULT ('{00000000-0000-0000-0000-000000000000}')
GO
END TRY
BEGIN CATCH
SET @errorCode = @@ERROR
END CATCH
END
IF @errorCode = 0
BEGIN
BEGIN TRY
UPDATE Color
SET CodeID= 'B6D266DC-B305-4153-A7AB-9109962255FC'
WHERE [Name] = 'Red'
END TRY
BEGIN CATCH
SET @errorCode = @@ERROR
END CATCH
END
-- **********************************
-- …Run Code Online (Sandbox Code Playgroud) 由于问题的标题问:我想知道,如果有使用的时候有什么区别flash[:error],flash[:alert]和flash[:notice].如果是这样,何时使用每个,为什么?
我正在设计一个Web应用程序和一个Windows服务,并希望将工作单元+存储库层与服务层结合使用,我在将它们放在一起时遇到一些麻烦,以便客户端应用程序控制数据的事务处理.工作单位.
工作单元具有在事务中注册的所有存储库的集合以及提交和回滚操作
public interface IUnitOfWork : IDisposable
{
IRepository<T> Repository<T>() where T : class;
void Commit();
void Rollback();
}
Run Code Online (Sandbox Code Playgroud)
通用存储库具有将在特定模型(表)的数据层上执行的操作
public interface IRepository<T> where T : class
{
IEnumerable<T> Get(Expression<Func<T, bool>> filter = null, IList<Expression<Func<T, object>>> includedProperties = null, IList<ISortCriteria<T>> sortCriterias = null);
PaginatedList<T> GetPaged(Expression<Func<T, bool>> filter = null, IList<Expression<Func<T, object>>> includedProperties = null, PagingOptions<T> pagingOptions = null);
T Find(Expression<Func<T, bool>> filter, IList<Expression<Func<T, object>>> includedProperties = null);
void Add(T t);
void Remove(T t);
void Remove(Expression<Func<T, bool>> filter);
}
Run Code Online (Sandbox Code Playgroud)
工作单元的具体实现使用引擎下的实体框架(DbContext)来保存对数据库的更改,并且每单元工作创建一个新的DbContext类实例
public …Run Code Online (Sandbox Code Playgroud) asp.net-mvc design-patterns dependency-injection unit-of-work repository-pattern
假设您使用ADO Entity Framwork创建一个对象并保存到数据库,如下面的代码所示.
private void CreateAddress(BizObjects.Address address)
{
var entity = new EntityFramework.Address();
entity.Line1 = address.Line1;
entity.Line2 = address.Line2;
entity.City = address.City;
entity.State = address.State;
entity.ZipCode = address.ZipCode;
_entities.AddToAddress(entity);
_entities.SaveChanges();
}
Run Code Online (Sandbox Code Playgroud)
如何检索新创建的对象的ID?
提前致谢.
所以我得到了例外
无效的回发或回调参数.使用配置或页面中的<%@ Page EnableEventValidation ="true"%>启用事件验证.出于安全考虑,此功能可验证回发或回调事件的参数是否来自最初呈现它们的服务器控件.如果数据有效且符合预期,请使用ClientScriptManager.RegisterForEventValidation方法注册回发或回调数据以进行验证.
使用以下堆栈跟踪
[System.ArgumentException:Untrapped Exception:无效的回发或回调参数.使用配置或页面中的<%@ Page EnableEventValidation ="true"%>启用事件验证.出于安全考虑,此功能可验证回发或回调事件的参数是否来自最初呈现它们的服务器控件.如果数据有效且符合预期,请使用ClientScriptManager.RegisterForEventValidation方法,以便在System.Web.UI上的System.Web.UI.ClientScriptManager.ValidateEvent(String uniqueId,String参数)中注册回发或回调数据以进行验证. System.Web.UI.WebControls.LinkButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)中System.Web.UI.WebControls.LinkButton.RaisePostBackEvent(String eventArgument)的.Control.ValidateEvent(String uniqueID,String eventArgument) )在System.Web.UI.Page.ProcessRequestMain(布局
includeStagesBeforeAsyncPoint,布尔includeStagesAfterAsyncPoint)的System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)的System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl,String eventArgument)中
在提交表单之后发生异常,然后在页面重新加载之前快速单击LinkButton以在同一页面上下载文件.
有人可以解释为什么在执行上述操作时发生此异常的细节?
提前致谢!
我有实体框架实体事件,其实体集合为RSVP.我想将RSVP的EntityCollection转换为POCO类RSVP的通用List <>.
所以我想要EntityCollection - > List.
实现这一目标的最佳方式是什么?
到目前为止我有这个(它缺少RSVP部分)
var events = from e in _entities.Event.Include("RSVP")
select new BizObjects.Event
{
EventId = e.EventId,
Name = e.Name,
Location = e.Location,
Organizer = e.Organizer,
StartDate = e.StartDate,
EndDate = e.EndDate,
Description = e.Description,
CreatedBy = e.CreatedBy,
CreatedOn = e.CreatedOn,
ModifiedBy = e.ModifiedBy,
ModifiedOn = e.ModifiedOn,
RSVPs = ???
};
Run Code Online (Sandbox Code Playgroud)
谢谢.
我想知道如何在网站中实现URL slug功能,而不会在URL中显示当前正在查看的记录的ID.
例如,StackOverflow URL如下所示:来自Url Slug的MVC动态视图.请注意,URL包含记录的ID.如果我要将此页面加入书签,并且由于某种原因记录的ID已更改,我将来无法查看此记录.
我想实现一个不依赖于记录ID的URL slug功能,所以它看起来像https://stackoverflow.com/questions/mvc-dynamic-views-from-url-slug.
你能否提供实现这一目标的步骤?你是否使用了唱片的标题并对其进行了缓和,保存了那个slug,再也没有改变它?
我正在寻找的示例网址是http://weblogs.asp.net/scottgu/archive/2010/10/04/jquery-templates-data-link-and-globalization-accepted-as-official-jquery -plugins.aspx(注意URL中没有ID)
谢谢!
asp.net-mvc ×3
asp.net ×2
c# ×2
alter-table ×1
linkbutton ×1
postback ×1
slug ×1
sql ×1
sql-server ×1
t-sql ×1
transactions ×1
unit-of-work ×1
url ×1
url-routing ×1