小编Gle*_*don的帖子

实体框架可以使用单个SaveChanges()添加许多相关实体吗?

我正在向数据库编写许多(20多个)父子数据集,并且EF要求我在每个集合之间保存更改,否则它会抱怨无法找出主键.可以将数据刷新到SQL Server,以便EF可以从身份中获取主键,并在写入所有更改结束时发送SaveChanges吗?

foreach (var itemCount in itemCounts)
{
    var addItemTracking = new ItemTracking
    {
        availabilityStatusID = availabilityStatusId,
        itemBatchId = itemCount.ItemBatchId,
        locationID = locationId,
        serialNumber = serialNumber,
        trackingQuantityOnHand = itemCount.CycleQuantity
    };
    _context.ItemTrackings.Add(addItemTracking);
    _context.SaveChanges();
    var addInventoryTransaction = new InventoryTransaction
    {
        activityHistoryID = newInventoryTransaction.activityHistoryID,
        itemTrackingID = addItemTracking.ItemTrackingID,
        personID = newInventoryTransaction.personID,
        usageTransactionTypeId = newInventoryTransaction.usageTransactionTypeId,
        transactionDate = newInventoryTransaction.transactionDate,
        usageQuantity = usageMultiplier * itemCount.CycleQuantity
    };
    _context.InventoryTransactions.Add(addInventoryTransaction);
    _context.SaveChanges();
}
Run Code Online (Sandbox Code Playgroud)

我想在大循环结束时只做一次我的SaveChanges.

c# identity entity-framework

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

使用实体框架的SQL查询运行速度较慢,使用错误的查询计划

我一般成功使用实体框架,但一个查询运行速度非常慢.查询(由EF生成)如下:

exec sp_executesql N'SELECT 
[Project1].[downtimeId] AS [downtimeId], 
CASE WHEN ([Extent12].[downtimeStart] > @p__linq__7) THEN [Extent13].[downtimeStart] ELSE @p__linq__8 END AS [C1], 
CASE WHEN ([Extent14].[equipmentID] IS NULL) THEN 0 ELSE [Extent15].[equipmentID] END AS [C2], 
CASE WHEN ([Extent16].[equipmentID] IS NULL) THEN N''Unit Overhead'' ELSE [Extent18].[equipmentCode] END AS [C3], 
CASE WHEN ( CAST( [Project1].[downtimeEquipmentStart] AS datetime2) > @p__linq__9) THEN  CAST( [Project1].[downtimeEquipmentStart] AS datetime2) ELSE @p__linq__10 END AS [C4], 
CASE WHEN ( CAST( [Project1].[downtimeEquipmentEnd] AS datetime2) < @p__linq__11) THEN  CAST( [Project1].[downtimeEquipmentEnd] AS datetime2) ELSE @p__linq__12 END …
Run Code Online (Sandbox Code Playgroud)

c# sql-server ssms entity-framework

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

在mySQL中将十六进制字符串转换为数字

我有一个值为'11B3'的列.我想写一个SQL语句(在mySQL中)和(&)该值与0x1880并返回结果.我无法将字符串列视为十六进制数.如有任何帮助,我将不胜感激.

这不起作用:

select szVersion,  hex(szVersion), concat("0x",szVersion)
Run Code Online (Sandbox Code Playgroud)

这可以根据需要运行(但不会从数据库中提取:

select 0x11bx & 0x1880
Run Code Online (Sandbox Code Playgroud)

mysql varchar hex

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

EF DateTimes与SQL Server中保存的值不匹配

我使用C#Entity Framework保存日期时间,当我从数据库加载该时间时,时间与我保存的值相差1毫秒或更多.

这是C#代码:

    public List<DateTime> TestDate()
    {
        var dates = new List<DateTime>();
        DateTime testvalue = DateTime.Now;
        dates.Add(testvalue);
        IactexGMG2Entities firstContext = new IactexGMG2Entities();
        var firstQuery = from p in firstContext.LocationProperties
                         where p.locationPropertyId == 4
                         select p;
        var firstRec = firstQuery.Single();
        firstRec.locationPropertyDateTime = testvalue;
        firstContext.SaveChanges();
        firstContext.Dispose();
         IactexGMG2Entities secondContext = new IactexGMG2Entities();
         var secondQuery = from p in secondContext.LocationProperties
                          where p.locationPropertyId == 4
                          select p;
        var secondRec = secondQuery.Single();

        var secondDate = secondRec.locationPropertyDateTime ?? DateTime.Now;
        dates.Add(secondDate);
        secondContext.Dispose();
        return dates;
    }
Run Code Online (Sandbox Code Playgroud)

以下是收到的值:

5/29/2015 5:43:25 …
Run Code Online (Sandbox Code Playgroud)

c# sql-server datetime entity-framework

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

标签 统计

c# ×3

entity-framework ×3

sql-server ×2

datetime ×1

hex ×1

identity ×1

mysql ×1

ssms ×1

varchar ×1