小编Alb*_*rto的帖子

实体框架刷新上下文?

我怎样才能刷新我的背景?我有基于我的数据库中的视图的实体,当我对一个表具有视图导航属性的实体进行更新时,实体是更新但视图不刷新符合新的更新...只是想再次从Db数据.谢谢!

c# asp.net entity-framework

88
推荐指数
5
解决办法
14万
查看次数

C#如何允许C++不允许虚拟模板方法的虚拟泛型方法?

C++不支持虚拟模板方法.原因在于,vtable无论何时进行这种方法的新实例化(必须将其添加到vtable),这都会改变.

相比之下,Java确实允许虚拟通用方法.在这里,还清楚如何实现:Java泛型在运行时被擦除,因此泛型方法是运行时的常用方法,因此不需要对其进行更改vtable.

但现在到C#.C#确实有具体的泛型.使用具体化的泛型,特别是当使用值类型作为类型参数时,必须有不同版本的泛型方法.但是后来我们遇到了与C++相同的问题:每当进行泛型方法的新实例化时,我们都需要改变vtable.

我对C#的内部工作并不是太深入,所以我的直觉可能完全是错误的.那些对C#/ .NET有更深入了解的人能告诉我他们如何在C#中实现通用虚拟方法吗?

这是代码,以显示我的意思:

[MethodImpl(MethodImplOptions.NoInlining)]
static void Test_GenericVCall()
{
    var b = GetA();
    b.M<string>();
    b.M<int>();
}

[MethodImpl(MethodImplOptions.NoInlining)]
static A GetA()
{
    return new B();
}

class A
{
    public virtual void M<T>()
    {
    }
}

class B : A
{
    public override void M<T>()
    {
        base.M<T>();
        Console.WriteLine(typeof(T).Name);
    }
}
Run Code Online (Sandbox Code Playgroud)

在调用M函数时,CLR如何调度到正确的JITed代码Test_GenericVCall

c# c++ generics templates generic-method

29
推荐指数
4
解决办法
2909
查看次数

如何在C#Asp.net中将SELECT sql查询结果保存在一个数组中

我已经编写了这个查询以获得一些结果,如果我想将结果保存在数组中我必须做什么?我想在IF语句中使用col1和col2中的值,这就是我想将它们保存在数组中的原因.

var con = new SqlConnection("Data Source=local;Initial Catalog=Test;Integrated Security=True");

using (con)
using (var command = new SqlCommand("SELECT col1,col2 FROM  some table", con))
{
   con.Open();
   command.ExecuteNonQuery();
}
Run Code Online (Sandbox Code Playgroud)

c# sql asp.net

18
推荐指数
3
解决办法
12万
查看次数

.NET StringComparer与SQL的Latin1_General_CI_AS等效

我正在我的数据库和我的C#代码之间实现一个缓存层.我们的想法是根据参数将某些数据库查询的结果缓存到查询中.数据库正在使用默认排序规则 - SQL_Latin1_General_CP1_CI_AS或者Latin1_General_CI_AS,我相信基于一些简短的谷歌搜索相当于相等,只是排序不同.

我需要一个.NET StringComparer,它可以给我相同的行为,至少对于相等测试和哈希码生成,正如数据库的排序规则所使用的那样.目标是能够在C#代码中的.NET字典中使用StringComparer来确定特定字符串键是否已经存在于缓存中.

一个非常简单的例子:

var comparer = StringComparer.??? // What goes here?

private static Dictionary<string, MyObject> cache =
    new Dictionary<string, MyObject>(comparer);

public static MyObject GetObject(string key) {
    if (cache.ContainsKey(key)) {
        return cache[key].Clone();
    } else {
        // invoke SQL "select * from mytable where mykey = @mykey"
        // with parameter @mykey set to key
        MyObject result = // object constructed from the sql result
        cache[key] = result;
        return result.Clone();
    }
}
public static void SaveObject(string key, …
Run Code Online (Sandbox Code Playgroud)

.net c# sql-server collation stringcomparer

13
推荐指数
2
解决办法
3095
查看次数

用于计算CRC16(Modbus)值的函数

使用C#.net,WPF应用程序.我要连接到设备(MODBUS协议),我必须计算CRC(CRC16).我使用的函数计算正常crc16和值是正确的,但我想要CRC16(modbus)的值.

帮我整理一下.

c# modbus crc16

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

保持数字长于64位

我需要保留比long更长的程序号或Int64.因为如果我使用long,它将返回0.

c# numbers

6
推荐指数
3
解决办法
4569
查看次数

语言不变Double.ToString()

我正在通过网络传递双倍,目前我这样做

double value = 0.25;
string networkMsg = "command " + value;
Run Code Online (Sandbox Code Playgroud)

networkMsg是英文得很好,它的0.25和法国在那里的0.25,但是当我从法国计算机去参加英语计算机一面使它0.25,另一种是试图读取0.25.

所以我可以在我的代码中使用区域不变量方法.

我发现Val(networkMsg)无论在哪个地区都会读到0.25.

但我无法找到从值转换为0.25区域不变的保证方式.会value.toString("0.0")工作吗?

.net c# vb.net

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

Bootstrap Typeahead更新程序无法正常工作

我试试这个:

$('input[name=recerv_country]').typeahead({
    remote : {
        url: '?country=%QUERY',
        filter: function(data) {
            var resultList = data.map(function (item) {   
                return item.name;
            });
            return resultList;
        }
    },
    updater : function (item) {
        //item = selected item
        //do your stuff.
        alert(item.name);
        alert('foo');
        alert('bar');
        //dont forget to return the item to reflect them into input
        return item;
    }
});
Run Code Online (Sandbox Code Playgroud)

什么都没发生,警报没有出现.我做错了什么?

jquery-autocomplete typeahead twitter-bootstrap-3

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

在控件周围绘制边框

好吧,我想在面板控件周围绘制自定义边框,我发现可以使用以下命令轻松实现

ControlPaint.DrawBorder(e.Graphics, ClientRectangle,
                 Color.Indigo, 10, ButtonBorderStyle.Solid,
                 Color.Indigo, 10, ButtonBorderStyle.Solid,
                 Color.Indigo, 10, ButtonBorderStyle.Solid,
                 Color.Indigo, 10, ButtonBorderStyle.Solid);
Run Code Online (Sandbox Code Playgroud)

但是,此方法和我尝试过的所有其他方法实际上在面板内绘制边框,因此当我将某些控件停靠在其中时,该控件会隐藏边框。

在此输入图像描述

所以我想知道有没有办法在控件之外绘制边框来避免这个问题?

c# winforms

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

ValueType.ToString和ReferenceType.ToString之间的区别

两个变量的ToString调用有什么区别?

int i = 0;
i.ToString();
Run Code Online (Sandbox Code Playgroud)

在调用ToString()之前,调用i.ToString()会使我首先装箱然后调用ToString或者我已经装箱了吗?

c# clr

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