小编Dav*_*vid的帖子

用于实现现场变更跟踪的模式

对于我最近的一个项目,我必须实施现场变更跟踪.因此,只要用户更改了字段的值,就会记录更改,以便对更改进行全面审核.

在数据库中,我将其实现为FieldChanges具有以下字段的单个表:

  • 表名
  • 字段名
  • 的recordId
  • DateOfChange
  • ChangedBy
  • INTVALUE
  • TextValue
  • DateTimeValue
  • BoolValue

对象的sproc保存更改确定每个字段是否已更改,并将记录插入FieldChanges(如果有):如果更改字段的类型是int,则将其记录IntValueFieldChanges表中的字段中,等等.

这意味着对于具有任何id值的任何表中的任何字段,我可以查询FieldChanges表以获取更改列表.

这很有效,但有点笨拙.能够实现类似功能的其他人是否可以提出更好的方法,以及为什么他们认为更好?

我真的很感兴趣 - 谢谢.

大卫

sql database design-patterns change-tracking

6
推荐指数
2
解决办法
2083
查看次数

C#:在单个语句中将对象中的所有事件连接起来

在我的域层中,所有域对象都会发出事件(类型为InvalidDomainObjectEventHandler),以指示调用IsValid属性时的无效状态.

在aspx代码隐藏中,我必须手动连接域对象的事件,如下所示:

_purchaseOrder.AmountIsNull += new DomainObject.InvalidDomainObjectEventHandler(HandleDomainObjectEvent);
_purchaseOrder.NoReason += new DomainObject.InvalidDomainObjectEventHandler(HandleDomainObjectEvent);
_purchaseOrder.NoSupplier += new DomainObject.InvalidDomainObjectEventHandler(HandleDomainObjectEvent);
_purchaseOrder.BothNewAndExistingSupplier += new DomainObject.InvalidDomainObjectEventHandler(HandleDomainObjectEvent);
Run Code Online (Sandbox Code Playgroud)

请注意,在每种情况下都会调用相同的方法,因为InvalidDomainobjectEventArgs类包含要显示的消息.

有没有什么办法可以编写一个语句来连接所有类型为InvalidDomainObjectEventHandler的事件?

谢谢

大卫

c# events delegates

6
推荐指数
2
解决办法
966
查看次数

如何在Entity Framework设计器中设置多对多关系

我是一名NHibernate开发人员,试图在一个爱好项目中为Entity Framework提供一个机会.我习惯使用Fluent NHibernate在代码中指定映射数据.赦免微软认为不应允许开发人员编写代码的信念,我试图使用Entity Framework的可视化设计器表面(通过在Visual Studio中打开.edmx文件获得)来创建映射.

我不知道如何建立多对多的关系!我已经从数据库"更新了模型",但是我得到了两个一对多的关系,这个关系是一个对应于联结表的新实体(它只包含外键和它自己的主键).

到目前为止,所有尝试通过点击实体和关系来解决这个问题都失败了.任何人都可以给我指针吗?

many-to-many entity-framework-4

6
推荐指数
1
解决办法
7971
查看次数

asp.net config转换 - 不适用于普通版本,只适用于发布

我们有许多配置转换,使我们能够使用web.config中指定的正确选项发布到特定环境.

但是,在指定特定构建配置的同时在本地运行应用程序会很有用.这将使我们能够在本地运行应用程序,并将其连接到实时数据库,例如,在追踪错误时非常方便.

但是,当我们按F5在本​​地运行应用程序时,无论当前选择的构建配置如何,都不会发生web.config文件的转换.

这是正常行为,是否可以改变它?

asp.net web-config web-config-transform

6
推荐指数
1
解决办法
217
查看次数

Linq - 子对象的where子句

鉴于以下课程:

public class Nation
{
  public string Name { get; set; }
  public IEnumerable<City> Cities { get; private set; }
}

public class City
{
  public string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

假设Nation是聚合根,所以我只有a NationRepository而不是a CityRepository(因此Nation是Linq查询的起点).为了澄清,我的出发点将是一个IQueryable<Nation>对象.

我如何City根据以下逻辑编写一个返回对象集合的查询:

选择所有以"M"开头的City实例,Name其父级Nation名称为"UK"?

c# linq

6
推荐指数
2
解决办法
9788
查看次数

Azure:以编程方式查询WADLogsTable以获取跟踪数据

我正在尝试使用以下代码从Azure获取最后一小时的所有跟踪数据:

                StorageCredentialsAccountAndKey storageCredentialsAccountAndKey = new StorageCredentialsAccountAndKey(accountName, key);
                CloudStorageAccount csa = new CloudStorageAccount(storageCredentialsAccountAndKey, true);
                TableServiceContext tableServiceContext = new TableServiceContext(csa.TableEndpoint.ToString(), csa.Credentials);
                var results = tableServiceContext.CreateQuery<TableServiceEntity>("WADLogsTable").Where(
                    x => x.Timestamp > DateTime.UtcNow.AddHours(-1)).ToList();
Run Code Online (Sandbox Code Playgroud)

但是,当我知道最后一小时表中有数据时,我发现没有找到结果(我将输出与Cerebrata的Azure诊断管理器进行比较).

我有两个问题:

  1. 这是查询WADLogsTable的正确方法吗?为什么我没有看到任何结果?
  2. 作为泛型参数传递的正确类型是什么?TableServiceEntity是一个只定义三列的基类.我想知道是否有一种特定代表WADLogsTable实体的类型.我只是创建一个属性与列名相同的类型吗?

c# azure azure-storage azure-table-storage

6
推荐指数
1
解决办法
4332
查看次数

如何以编程方式停止所有合成器?

我如何以编程方式告诉supercollider停止所有合成器,就像在Ctrl+.IDE中相同?

supercollider

6
推荐指数
2
解决办法
1712
查看次数

如何在用户键入时保持输入占位符可见

我有一个新的、有趣的要求。当用户开始输入时,占位符不应消失,而应保持可见并移至输入框的右侧。

使用标准 HTML 占位符是否可以实现这一点?我怎样才能实现这个目标?

谢谢

html javascript css placeholder

6
推荐指数
1
解决办法
1万
查看次数

asp.net mvc - 如何强制执行控制器层超类型

我想Controller在我的项目中使用一个扩展为控制器默认基类型的类,而不是使用Controller它自己.所以,我会这样做:

public class FooController : MyBaseController
Run Code Online (Sandbox Code Playgroud)

有没有办法可以强制执行此操作,以便人们无法创建Controller直接扩展的控制器?

asp.net-mvc design-patterns controller

5
推荐指数
2
解决办法
476
查看次数

在ServiceStack API应用程序中使用的正确"每个请求"Simple Injector生活方式是什么?

我有一个ServiceStack API应用程序,它使用Simple Injector作为其IoC容器.我需要某些组件才能拥有"按网络请求"的生活方式.

我在这里查看了Simple Injector文档,发现它没有一个,而是两个与'每个web请求'相对应的生活方式:

  1. 每Web请求
  2. 每个Web API请求

这让我很困惑,因为我一直认为所有ASP.NET应用程序都使用相同的基本管道,并且通过插入HTTP模块,每个Web请求实现了IoC容器.为什么Web API应用程序会有所不同?

任何人都可以了解哪个最适合ServiceStack API应用程序?

dependency-injection perwebrequest servicestack simple-injector

5
推荐指数
1
解决办法
1484
查看次数