小编Raj*_*mar的帖子

Database.BeginTransaction()实体框架回滚抛出异常

我正在EF6我的 asp.net 应用程序中使用。在我正在使用的某些代码块中Transaction Scope。以下是我的代码

 using (VerbaTrackEntities dataContext = new VerbaTrackEntities())
        {
            TBL_TARGET target = dataContext.TBL_TARGET.Where(x => x.LNG_TARGET_ID == TargetID).SingleOrDefault();
            if (target != null)
            {
                using (var trans = dataContext.Database.BeginTransaction())
                {
                    try
                    {
                        System.Data.Entity.Core.Objects.ObjectContext oc = ((System.Data.Entity.Infrastructure.IObjectContextAdapter)dataContext).ObjectContext;
                        foreach (var Targets in target.TBL_CASE_TARGET.ToList())
                        {
                            oc.DeleteObject(Targets);
                        }
                        foreach (var Targets in target.TBL_USER_TARGET.ToList())
                        {
                            oc.DeleteObject(Targets);
                        }
                        foreach (var Targets in target.TBL_FENCE_TARGET.ToList())
                        {
                            oc.DeleteObject(Targets);
                        }
                        foreach (var Targets in target.TBL_TARGET_COMM.ToList())
                        {
                            oc.DeleteObject(Targets);
                        }
                        foreach (var Targets in target.TBL_TRG_FENCE_STATUS.ToList())
                        {
                            oc.DeleteObject(Targets);
                        } …
Run Code Online (Sandbox Code Playgroud)

c# asp.net entity-framework transactionscope

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

迭代IEnumerable <string>导致严重的性能问题

当我试图迭代IEnumerable类型时,我很少知道for循环的性能发生了什么.

以下是导致严重性能问题的代码

foreach (IEdge ed in edcol)
{
    IEnumerable<string> row = 
        from r in dtRow.AsEnumerable()
        where (((r.Field<string>("F1") == ed.Vertex1.Name) && 
                (r.Field<string>("F2") == ed.Vertex2.Name))
            || ((r.Field<string>("F1") == ed.Vertex2.Name) &&
                (r.Field<string>("F2") == ed.Vertex1.Name)))
        select r.Field<string>("EdgeId");
    int co = row.Count();
    //foreach (string s in row)
    //{

    //}
    x++;
}
Run Code Online (Sandbox Code Playgroud)

上层foreach(eddge中的IEdge)大约需要11000次迭代才能完成.如果我删除该行,它会在几分之一秒内运行

int co = row.Count();
Run Code Online (Sandbox Code Playgroud)

从代码.

row.Count()在所有循环中的最大值为10.

如果我取消注释

//foreach (string s in row)
//{

//}
Run Code Online (Sandbox Code Playgroud)

大约需要10分钟才能完成代码的执行.

IEnumerable类型是否有如此严重的性能问题.??

c# performance

0
推荐指数
1
解决办法
445
查看次数

使用TimeSpan.Hours在Linq中进行分组

我有一个数据表,其中包含以下列

CallTime   CallType

15:45:00    Voice
15:30:54    Voice
00:12:14    SMS
01:13:47    Voice
05:48:23    SMS
12:00:47    Voice
Run Code Online (Sandbox Code Playgroud)

现在我想要使用像这样的Linq结果

Hrs   Count
00    1
01    1
02    0
03    0
04    0
05    1
06    0
|
|
|
12    1
13    0
|
15    2
16    0
|
|
23    0
Run Code Online (Sandbox Code Playgroud)

我正在使用以下查询,它给我的数值> 0但我想得到那些也有count = 0

var groupQueryTimeTotal = (from r in Foundrows.AsEnumerable()
                                   let time = TimeSpan.Parse(r.Field<string>("Call Time"))
                                   group r by time.Hours
                                       into g
                                       select new
                                       {
                                           CallTime = g.Key,
                                           CallCount = g.Count(),
                                       }).OrderBy(s …
Run Code Online (Sandbox Code Playgroud)

c# linq datatable winforms

0
推荐指数
1
解决办法
588
查看次数

如何编写这个LINQ查询

嗨,我有一个以下字段的数据表

DAT_START
GROUPBY
TXT_LATITTUDE
TXT_LONGITUDE
INT_DIRECTION
INT_CALL_DATA_TYPE
LNG_DURATION
Run Code Online (Sandbox Code Playgroud)

以下是我正在使用的LINQ查询

var data = (from r in dt.AsEnumerable()
where ((r.Field<DateTime>("DAT_START").TimeOfDay.Hours < 20) && (r.Field<DateTime>("DAT_START").TimeOfDay.Hours >= 4))
group r by new { CID = r["GroupBy"], CLatitude = r["TXT_LATITUDE"], CLongitude = r["TXT_LONGITUDE"],CDirection = r["INT_DIRECTION"], 
CCallType = r["INT_CALL_DATA_TYPE"],CDuration = r["LNG_DURATION"] }
into groupedTable
select new
{
   CellID = groupedTable.Key.CID,
   CallCount = groupedTable.Count(),
   Longitude = groupedTable.Key.CLongitude,
   Latitude = groupedTable.Key.CLatitude,
   Direction = groupedTable.Key.CDirection,
   CallType = groupedTable.Key.CCallType,
   Duration = groupedTable.Key.CDuration
}).OrderByDescending(s => s.CallCount);
Run Code Online (Sandbox Code Playgroud)

它给了我这样的结果

CellID = 4057,CallCount = …
Run Code Online (Sandbox Code Playgroud)

c# linq winforms

0
推荐指数
1
解决办法
131
查看次数

在Javascript和C#中计算的时间戳是不同的

我计算TimeStampjavascript使用下面的代码

var timestamp = new Date;

这给我的结果1436504446858包含13数字取决于当前时间.

C#使用以下代码计算相同的事情

DateTime centuryBegin = new DateTime(1970, 1, 1);
DateTime currentDate = DateTime.Now;
long elapsedTicks = currentDate.Ticks - centuryBegin.Ticks;
Run Code Online (Sandbox Code Playgroud)

在这里,我得到14365252465308044包含17数字的结果

为什么这两种方法有如此大的差异?

javascript c# datetime timestamp

0
推荐指数
1
解决办法
1691
查看次数

为什么我们在.net Framework中需要MSIL

我想知道当我们编译.net源代码时,它首先转换为MSIL然后转换为二进制可执行代码.我知道MSIL是与机器和语言无关的代码.

但是为什么在被CPU执行之前它首先被转换为MSIL.实际上我们在.net框架中有什么需要MSIL?

c# cil

-1
推荐指数
1
解决办法
895
查看次数

c#中的继承顺序

我想知道是否假设我有一个基类A继承了一个接口说我和另一个类说B然后是否有任何区别

Class A : I,B
{
  // Function and Members
}
Run Code Online (Sandbox Code Playgroud)

Class A : B,I
{
   // Function and Members
}
Run Code Online (Sandbox Code Playgroud)

c# loops

-2
推荐指数
1
解决办法
152
查看次数