小编cto*_*orx的帖子

C#Lazy Loaded自动属性

在C#中,

有没有办法将自动属性转换为具有指定默认值的延迟加载自动属性?

基本上,我试图扭转这个......

private string _SomeVariable

public string SomeVariable
{
     get
     {
          if(_SomeVariable == null)
          {
             _SomeVariable = SomeClass.IOnlyWantToCallYouOnce();
          }

          return _SomeVariable;
     }
}
Run Code Online (Sandbox Code Playgroud)

到不同的东西,我可以指定默认值,它自动处理其余的...

[SetUsing(SomeClass.IOnlyWantToCallYouOnce())]
public string SomeVariable {get; private set;}
Run Code Online (Sandbox Code Playgroud)

c# automatic-properties

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

实体框架合并梦魇

我们已经采用了实体框架,我们发现当多个人在他们各自的源控制分支中进行单独的更改时,当它们在合并中聚集在一起时会发生大量冲突,导致模型文件损坏.

我们倾向于强制对文件进行独占检查,但我想避免这种情况.

我的问题是......

是否有更好的比较工具可以更好地处理这个问题,还是我们可以采取另一种方法?

寻找可能的事情.

新更新: 对于遇到此问题的人,它基于旧的EF.我建议在EDMX上使用DbContext.这里有很多关于它的信息.数据库优先或代码优先的简单性远远超过了我认为设计师的损失.

更新: 我们通过强制对文件进行独占更改来解决此问题.通过添加此过程,我们完全消除了任何问题.虽然这不是理想的解决方案,但它是最可靠和最容易实施的.

version-control merge tfs entity-framework edmx

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

Git Bash:通过Alias启动应用程序而不挂Bash(WIndows)

我在Windows上的Git Bash中创建了几个bash别名,从bash shell启动可执行文件.

我遇到的问题是,似乎bash在它再次开始响应输入之前等待退出代码,因为一旦我关闭它启动的应用程序,它就会再次开始执行命令.

是否有一个开关或我可以包含在别名中的东西,以便bash不等待退出代码?

我在寻找像这样的东西......

alias np=notepad.exe --exit
Run Code Online (Sandbox Code Playgroud)

git bash

15
推荐指数
2
解决办法
6480
查看次数

JQuery DIalog和ASP.NET Repeater

我有一个ASP.NET转发器,它显示了一个带有删除LinkBut​​ton的项目列表.

我想设置Delete LinkBut​​tons以显示JQuery对话框以进行确认.如果单击"确定"按钮,我想进行回发.

显而易见的问题是转发器中的每个LinkBut​​ton都有自己的ID,我不想复制对话框的所有javascript.

建议?

javascript asp.net jquery

10
推荐指数
1
解决办法
8843
查看次数

Windows上的Git Bash - 存储位置以及如何调用Bash脚本

在Windows上使用Git Bash,如果我创建一个bash脚本,我在哪里放置它以便我可以从bash shell访问它?

基本上,我想创建一个bash shell脚本,用文件等做一些事情.

我想用一些参数从bash内部调用函数,然后脚本将完成它的工作.

我对这个环境完全陌生,所以我对bash的了解非常有限.

提前致谢.

git bash msysgit

8
推荐指数
1
解决办法
4143
查看次数

Lambda Func <>和Fluent

现在有许多Fluent实现可以与Lambdas一起完成非常整洁的工作.我想把我的大脑包裹起来,这样我就可以开始创造一些这样的东西,但我还没有找到一个我的大脑能够理解的解释.

考虑这个简单的Person Validator示例

public class PersonValidator : IValidator<Person>
{
     public PersonValidator()
     {
          AddRule(p => p.FirstName).CannotBeNull().CannotBeBlank();
          AddRule(p => p.LastName).CannotBeNull().CannotBeBlank();
     }

     public List<ValidationResult> Validate(Person p)
     {
         // pseudo...
         apply all rules specified in constructor, return results
     }
}
Run Code Online (Sandbox Code Playgroud)

我已经成功地使用我的Validator上的方法来完成所有这些工作的一部分......

public ValidationResult<T,TProp> AddRule<T,TProp>(Func<T,TProp> property)
{
    ... not sure what to do here.  This method gives me the ability to use the lambda
    ... for specifying which properties i want to validate
}
Run Code Online (Sandbox Code Playgroud)

然后,我可以创建扩展IValidator的Extension方法,以实现CannotBeNull和CannotBeEmpty的目的.

所以我似乎有问题的上半部分和后半部分,但我不确定如何将它们组合在一起.

寻找有意义的解释...我想"得到它".:)

c# lambda fluent-interface

7
推荐指数
1
解决办法
2037
查看次数

LINQ to Entities投影嵌套列表

假设这些对象......

class MyClass
{
     int ID {get;set;}
     string Name {get;set;}
     List<MyOtherClass> Things {get;set;}
}

class MyOtherClass
{
     int ID {get;set;}
     string Value {get;set;}
}
Run Code Online (Sandbox Code Playgroud)

如何使用下面的投影执行LINQ to Entities Query,它会给我一个List?这与IEnumerable工作正常(假设MyClass.Things是IEnumerable,但我需要使用List)

MyClass myClass = (from MyClassTable mct in this.Context.MyClassTableSet
                        select new MyClass
                        {
                             ID = mct.ID,
                             Name = mct.Name,
                             Things = (from MyOtherClass moc in mct.Stuff
                                       where moc.IsActive
                                       select new MyOtherClass
                                       {
                                            ID = moc.ID,
                                            Value = moc.Value
                                       }).AsEnumerable()
                        }).FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)

在此先感谢您的帮助!

c# linq-to-entities entity entity-framework

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

ASP.NET核心标识中基于临时会话的声明

在ASP.NET核心标识中添加声明很简单,但我无法找到如何添加基于临时会话的声明.

我的用例是,具有自己的自定义声明的登录用户需要定期添加新声明,但仅限于当前会话,而不是持久保存到数据库.关闭浏览器或退出后,临时声明应该消失.

这是为了满足一种机制,该机制临时更改用户所属的组织,以便在我正在迁移到asp.net Core的应用程序中进行模拟.

我在这里找到了很多关于GenerateUserIdentityAsync在以前版本的Identity中实现这一点的建议,但在新版本中似乎没有.

c# asp.net asp.net-mvc asp.net-identity asp.net-core-identity

7
推荐指数
0
解决办法
842
查看次数

实体框架生成的SQL

是否可以在全局级别而不是按查询的基础上输出实体框架生成的SQL?我希望把它全部丢弃,以便我可以查看它.

如果这不可能,我如何查看为更新和插入生成的SQL?

c# sql entity-framework

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

实体框架 - 包含导航属性的选择条件

假设我有这些简化的EF生成实体......

public class PurchaseOrder
{
     public int POID {get;set;}
     public int OrderID {get;set;}
     public int VendorID {get;set;}
     public IEnumerable<Order> Orders {get;set;}
}

public class Order
{
     public int OrderID {get;set;}
     public decimal Price {get;set;}
     public IEnumerable<Item> Items {get;set;}
}

public class Item
{
     public int OrderID {get; set;}
     public string SKU {get;set;}
     public int VendorID {get;set;}
     public Order Order {get;set;}
}
Run Code Online (Sandbox Code Playgroud)

商业逻辑:

订单可以有多个PO,一个用于订单上的每个不同供应商(供应商在物料级别确定).

我如何选择性地包括儿童实体?

查询PO时,我想自动为订单和项目添加子项目.

我完成了这个,使用Include()...

Context.PurchaseOrders.Include("Orders.Items");
Run Code Online (Sandbox Code Playgroud)

这是它的工作并拉回相关实体,但是,我只想包含其VendorID与PurchaseOrder实体的VendorID匹配的Item实体.

对于传统的SQL,我只是在JOIN条件中包含它,但EF在内部构建它们.

我可以使用什么LINQ魔术告诉EF应用条件,而无需在实体之间手动创建JOIN?

c# linq entity-framework navigation-properties

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