小编Dee*_*ain的帖子

ReSharper键绑定问题

我使用:Visual Studio 2010 Ultimate,Resharer 6.

在ReSharper的选项中,我选择Visual Studio键盘,然后单击Apply Sheme:

之后,没有分配一些快捷方式,例如:转到声明,转到实现,查找用法,完成符号等:

在此输入图像描述

尝试

  • 工具 - >选项,环境 - >键盘 - >重置
  • 导入和导出设置,重新导入C#开发人员设置
  • devenv/reset

什么都没有帮助.

手动配置快捷方式是不可取的.请帮忙.

resharper visual-studio

67
推荐指数
5
解决办法
3万
查看次数

了解实体框架乐观并发(数据库获胜)模式

请参阅使用Reload解决乐观并发异常(数据库获胜):

using (var context = new BloggingContext())
{
    var blog = context.Blogs.Find(1);
    blog.Name = "The New ADO.NET Blog";
    bool saveFailed;
    do
    {
        saveFailed = false;

        try
        {
            context.SaveChanges();
        }
        catch (DbUpdateConcurrencyException ex)
        {
            saveFailed = true;

            // Update the values of the entity that failed to save from the store
            ex.Entries.Single().Reload();
        }

    } while (saveFailed);
}
Run Code Online (Sandbox Code Playgroud)

为什么该方法SaveChanges()被调用Reload()?此调用永远不会更改数据库中的数据.

entity-framework optimistic-concurrency

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

C#隐式转换和从Object转换

有一节课:

public class Date
{
    private DateTime _dateTime;

    public Date(DateTime dateTime)
    {
        _dateTime = dateTime;
    }

    public static implicit operator DateTime(Date d)
    {
        if (d == null)
            return default(DateTime);

        return d._dateTime;
    }

    public static implicit operator Date(DateTime dt)
    {
        return new Date(dt);
    }
}
Run Code Online (Sandbox Code Playgroud)

所以,这段代码工作正常:

Date d = DateTime.Now;
DateTime dt=new Date(DateTime.Now);
Run Code Online (Sandbox Code Playgroud)

但是此代码不起作用并抛出InvalidCastException"指定的强制转换无效.":

Date d = DateTime.Now;
var obj = (Object)d;
DateTime dt = (DateTime)obj;
Run Code Online (Sandbox Code Playgroud)

对我来说,这是预期的行为,但有没有任何黑客可以让这个特定的代码工作?(没有施放对象到日期)

.net c# implicit-cast implicit-conversion

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

字符串转换不起作用

考虑这样一个类:

public class MyString
{
 private string _string;

 public string String
 {
  get { return _string; }
  set { _string = value; }
 }

 public MyString(string s)
 {
  _string = s;
 }

 public static implicit operator string(MyString str)
 {
  return str.String;
 }

 public static implicit operator MyString(string str)
 {
  return new MyString(str);
 }
}
Run Code Online (Sandbox Code Playgroud)

如何使以下代码有效?

MyString a = "test";
object b = a;
var c = (string)b;
Run Code Online (Sandbox Code Playgroud)

现在我得到这个例外:

InvalidCastException:无法将类型为'MyString'的对象强制转换为'System.String'.

c# casting operator-overloading type-conversion

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

如何在Entity Framework中仅加载基类型

考虑以下案例:

我有另外两个继承的基类.例如,我们将:

class Base
{

}
class DerivedA : Base
{

}
class DerivedB : Base
{

}
Run Code Online (Sandbox Code Playgroud)

当我向代码请求基本实体时

context.Base.Where(q => q.Id == id).first();

实体框架为每个派生实体生成一组完整的连接,这导致低于可接受的查询性能.什么我要的是只加载基础机构没有它加入到衍生的.

我在这里找到的唯一解决方案是http://blogs.msdn.com/b/alexj/archive/2009/09/17/tip-35-how-to-write-oftypeonly-tentity.aspx.但这对我不起作用.EF仍会产生巨大的查询.

编写如下查询:

context.Base.Where(q => !(q is DerivedA) && !(q is DerivedB)).First();
Run Code Online (Sandbox Code Playgroud)

由于衍生类型的数量不断增加,也不适合我.

除了我提到的那些之外,有没有可能的解决方案?

c# entity-framework entity-framework-4 entity-framework-4.1

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

MVC注释验证删除data-val属性

我有模特财产:

public int? RegionId { get; set; }
Run Code Online (Sandbox Code Playgroud)

我在视图中创建下拉列表:

@Html.DropDownListFor(m => m.RegionId, Model.Regions)
Run Code Online (Sandbox Code Playgroud)

在html中:

<select data-val="true" data-val-number="The field RegionId must be a number." 
</select>
Run Code Online (Sandbox Code Playgroud)

我需要删除属性data-val-number,因为在特定情况下它不适合我.

我在Application_Start中尝试:

DataAnnotationsModelValidatorProvider.AddImplicitRequiredAttributeForValueTypes = false;
Run Code Online (Sandbox Code Playgroud)

另请注意,RegionId可以为空.

如何在服务器端代码中删除此属性?(不是javascript)

validation asp.net-mvc data-annotations asp.net-mvc-3

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

MVC3 DropDownListFor没有选择项(Mvc bug?)

我有简单的测试模型:

  public class MyModel
    {
        public InnerModel InnerModel { get; set; }

    }

    public class InnerModel
    {
        public int Value { get; set; }
    }
Run Code Online (Sandbox Code Playgroud)

在控制器中:

public ActionResult Index()
{
    var model = new MyModel();

    model.InnerModel = new InnerModel { Value = 3 };

    return View("MyModelView", model);
}
Run Code Online (Sandbox Code Playgroud)

MyModelView:

@model MyModel

@{
    var items = new List<SelectListItem>()
                    {
                        new SelectListItem {Text = "one", Value = "1"},
                        new SelectListItem {Text = "two", Value = "2"},
                        new SelectListItem {Text = "three", Value …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc mvc-editor-templates html.dropdownlistfor asp.net-mvc-3

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