小编Mal*_*are的帖子

使用唯一递增值更新表中的int列

我试图填充任何缺少其InterfaceID (INT)列中值的行,每行具有唯一值.

我正在尝试执行此查询:

UPDATE prices SET interfaceID = (SELECT ISNULL(MAX(interfaceID),0) + 1 FROM prices) 
       WHERE interfaceID IS null
Run Code Online (Sandbox Code Playgroud)

我希望(SELECT ISNULL(MAX(interfaceID),0) + 1 FROM prices)对每一行进行评估,但它只进行一次,所以我所有受影响的行都得到相同的值而不是不同的值.

这可以在一个查询中完成吗?

sql sql-server sql-server-2008

50
推荐指数
4
解决办法
9万
查看次数

为什么EF返回代理类而不是实际实体?

当我想要实际的实体类时,我遇到了实体框架返回代理的问题.我第一次运行我的代码时,一切运行正常(没有代理),但每次迭代之后,我的一个DbSets总是返回代理而不是实际类型.

我在每次迭代后处理上下文,所以我不明白为什么第一次通过它工作,并且每次都没有.

我的代码在这一行失败了.我的所有POCO都设置了Table属性,但因为它返回了一个代理类,所以没有table属性.

TableAttribute attrib = (TableAttribute)attributes.Single();
Run Code Online (Sandbox Code Playgroud)

DbContext中有一些幕后静态魔法在我摧毁对象后生活吗?

我使用以下内容将对象移动到内存中

MajorClasses = ctx.MajorClasses.ToArray();
Run Code Online (Sandbox Code Playgroud)

我也试过了

MajorClasses = ctx.MajorClasses.AsNoTracking().ToArray();
Run Code Online (Sandbox Code Playgroud)

在我的OnModelCreating中,我有以下设置

base.Configuration.ProxyCreationEnabled = false;
            base.Configuration.LazyLoadingEnabled = false;
Run Code Online (Sandbox Code Playgroud)

c# entity-framework

31
推荐指数
2
解决办法
3万
查看次数

用于检测数据集中的重复项的算法,该数据集太大而不能完全加载到存储器中

这个问题有最佳解决方案吗?

描述在一百万个电话号码的文件中查找重复项的算法.该算法在运行时只能有2兆字节的内存,这意味着您无法一次将所有电话号码加载到内存中.

我的'天真'解决方案是一个O(n ^ 2)解决方案,它迭代值并只是一次性加载文件而不是全部.

对于i = 0到999,999

string currentVal = get the item at index i

for j = i+1 to 999,999
  if (j - i mod fileChunkSize == 0)
    load file chunk into array
  if data[j] == currentVal
    add currentVal to duplicateList and exit for
Run Code Online (Sandbox Code Playgroud)

必须有另一种情况,您可以以一种非常独特的方式加载整个数据集,并验证数字是否重复.有人吗?

algorithm duplicates

7
推荐指数
2
解决办法
6174
查看次数

.Net源代码中的奇怪变量名(_ [....])(HttpApplication.cs)

我正在通过.Net Framework源代码找到一个棘手的错误(HttpApplication.cs),我注意到代码中的这些行(这些是复制/粘贴,我没有编辑任何东西):

_[....] = true;
Run Code Online (Sandbox Code Playgroud)

_[....] = false;
Run Code Online (Sandbox Code Playgroud)

我想知道这是否是混淆代码,还是这种我以前从未见过的c#约定?VS 2012似乎认为它不是真正的代码.

任何人都可以开导我吗?

.net c#

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

MVC WebAPI返回500错误,没有任何信息

我已经有好几天这个问题了(现在已经修复了,解决方案注意到遇到这个问题并且正在解决问题的人).

在我的最新一轮代码更改为使用MVC4 WebAPI获取数据的Silverlight应用程序之后,我遇到了一个返回的HttpGet操作问题IQueryable<oneofmyclasses>.使用Fiddler2来观察请求,我可以看到我收到内部服务器错误(500),没有正文解释原因.我的行动中没有收到任何错误.

检查1:我确认我的行动确实return collection.AsQueryable();没有错误.它是

检查2:我验证了我的数据是使用此代码序列化为JSON而没有错误(g是我的集合):

var json = new JsonMediaTypeFormatter();
            json.SerializerSettings.PreserveReferencesHandling = PreserveReferencesHandling.Objects;
            ObjectContent<IEnumerable<Model.MenuGroup>> responseContent = new ObjectContent<IEnumerable<Model.MenuGroup>>(g, json); 
            MemoryStream ms = new MemoryStream();

            responseContent.CopyToAsync(ms).Wait();
            ms.Position = 0;
            var sr = new StreamReader(ms);
            var str = sr.ReadToEnd();
Run Code Online (Sandbox Code Playgroud)

这也有效.我也使用XML格式化器测试它,尽管我很确定它只使用过JSON(不能太小心).

检查3:启用.Net Framework调试.这次发生错误时(在HttpApplication.cs中)VS 2012发现了它.

我的错误:

尽管已经使用这些属性标记了属性,

[XmlIgnore]
[IgnoreDataMember]
[JsonIgnore]
Run Code Online (Sandbox Code Playgroud)

.Net Source正在调用我的一个属性.捕获,这是一个只写的属性.我只是补充道

get { return null; }
Run Code Online (Sandbox Code Playgroud)

问题解决了.

我可能应该先完成Check 3,但我之前遇到此错误的经验表明,尝试序列化我的对象时通常会出现错误,这就是为什么当他们正确序列化并且出错时我有点头疼的原因持续存在.

asp.net-web-api

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

开始事务时SqlServer.Management.SMO.Server错误

使用SMO时出错.这段代码一直在VB.Net 4中运行,刚刚转移到C#,现在无法运行.

Microsoft.SqlServer.Management.Smo.Server server = new Microsoft.SqlServer.Management.Smo.Server(
    new Microsoft.SqlServer.Management.Common.ServerConnection(
    new System.Data.SqlClient.SqlConnection(connStr.ToString())));

server.ConnectionContext.Connect();
server.ConnectionContext.BeginTransaction(); // error here
Run Code Online (Sandbox Code Playgroud)

错误是:

在MARS批处理中启动的事务在批处理结束时仍处于活动状态.该事务被回滚.

除了SMO之外,没有其他与数据库的连接.

连接字符串是:

数据源= MYPC\SqlServer;初始目录= mytestdb;集成安全性=真;用户ID =;密码=; MultipleActiveResultSets = True

有没有人在使用SMO时看到此错误并知道是什么原因造成的?

c# sql-server smo transactions

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

Spring MVC 3.1中的POST上缺少set-cookie标头

在$ .ajax POST调用期间添加到HttpServletResponse的cookie不会出现在响应标头中(没有set-cookie)。在GET请求期间,相同的代码可以正常运行。

我在拦截器postHandle中有以下代码:

public void postHandle(HttpServletRequest request, HttpServletResponse response,
                           Object handler, ModelAndView modelAndView) throws Exception {
.
.
            Cookie cookie = new Cookie(User.USER_KEY, userAsJson);
            LOGGER.info("Cookie json is: " + userAsJson);
            cookie.setPath("/");
            response.addCookie(cookie);
            LOGGER.info("Header names: " + response.getHeaderNames());
            LOGGER.info("Set-cookie header(s): " + response.getHeaders("Set-Cookie"));
}
Run Code Online (Sandbox Code Playgroud)

从请求返回到此映射时,我看到此问题:

@RequestMapping(value = "/api/user/wait", method = RequestMethod.POST)
@ResponseBody
public User waitingApi(HttpSession session) {
Run Code Online (Sandbox Code Playgroud)

Ajax调用参数:

    var ajaxMessage = {
        url : '/api/user/wait',
        type : 'POST',
        success : waitCallback,
        error : waitErrorCallback
    };
Run Code Online (Sandbox Code Playgroud)

在GET上,我在日志中看到以下内容:

Cookie json是:{我有效的json对象}

标头名称:[Set-Cookie]

Set-cookie标头:[user …

cookies post spring-mvc

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

实体框架:没有导航属性映射外键?

动机:我的EF4.1 DbContext以错误的顺序保存实体

原因:我的模型缺乏导航属性

我想怎么解决它:

我想在我的DbContext中设置外键关系.问题是我的实体对象没有导航属性(我用它来填充Web服务,然后将DTO对象发送到我的应用程序).

下面的课程就是一个例子.在MinorClass中,我想配置我的上下文,以便它知道MajorClassID是一个外键.我在互联网上发现的关于如何明确定义外键的文章涉及使用我的对象没有的导航属性.

有没有办法映射这种关系?

public class MinorClass
{
    public Guid ID {get;set:}
    public Guid MajorClassID {get;set;} // foreign key
    public string Name {get;set;}
}

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

foreign-keys entity-framework-4

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

如何做Linq GroupJoin自我填充儿童/父母财产?

我有以下课程

public class OrderItem
{
    public Guid ID { get; set; }
    public Guid? ParentID { get; set; }
    public IEnumerable<OrderItem> Children { get; set; }
    public OrderItem Parent { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我最初从数据库和数组中获取它们.

OrderItem[] arrOrderItems = ctx.Database.SqlQuery<OrderItem>(orderItemsQuery).ToArray();
Run Code Online (Sandbox Code Playgroud)

现在我想链接这些类,以便我的基本数组仍包含所有项目,但每个项目都有其导航属性集(Children,Parent).

是否有任何提供此功能的Linq功能?

我的初衷是做一个GroupJoin填充孩子,然后加入填充父母.我在下面有我的示例GroupJoin代码.我无法弄清楚如何让groupjoin返回父对象.它试图返回IEnumerable <IEnumerable <OrderItem >>

arrOrderItems = arrOrderItems.GroupJoin(arrOrderItems, 
                                        x => x.ID, x => x.ParentID, 
                                        (parent, children) => 
                                        parent.Children = children);
Run Code Online (Sandbox Code Playgroud)

有什么想法吗?

编辑:

我只是想找到一种更好(更快)的方法来做到这一点

foreach(OrderItem item in arrOrderItems)
{
    if (item.ParentID.HasValue)
        item.ParentOrderItem = arrOrderItems.Where(x => x.ID == item.ParentID.Value).FirstOrDefault();

    item.Children = …
Run Code Online (Sandbox Code Playgroud)

c# linq join

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

当ItemsSource为空或null时,MVVM WPF用Label替换ListBox

我在WPF(.NET 3.5)中有这一行:

<ListBox ItemsSource="{Binding Locks}" Style="{DynamicResource FancyListBox}" />
Run Code Online (Sandbox Code Playgroud)

我的期望的行为是,当属性锁(一个ObservableCollection)是null或包含0个元素,显示像一个下面,而不是列表框的标签.

<Label Content="No locks are present" Style="{DynamicResource FancyLabel}" />
Run Code Online (Sandbox Code Playgroud)

我能想到的迄今唯一的解决办法是将锁定属性使用valueconverter可见性(即转换器像CollectionToVisibilityShowIfNull,CollectionToVisibilityShowIfNotNull)绑定,但我不知道这是最好的解决方案.

... Visibility={Binding Locks, Converter={StaticResource CollectiontoVisibilityShowIfNull}} ..
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助!

collections wpf visibility mvvm

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