我使用:Visual Studio 2010 Ultimate,Resharer 6.
在ReSharper的选项中,我选择Visual Studio键盘,然后单击Apply Sheme:
之后,没有分配一些快捷方式,例如:转到声明,转到实现,查找用法,完成符号等:
尝试
什么都没有帮助.
手动配置快捷方式是不可取的.请帮忙.
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()
?此调用永远不会更改数据库中的数据.
有一节课:
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)
对我来说,这是预期的行为,但有没有任何黑客可以让这个特定的代码工作?(没有施放对象到日期)
考虑这样一个类:
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'.
考虑以下案例:
我有另外两个继承的基类.例如,我们将:
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)
由于衍生类型的数量不断增加,也不适合我.
除了我提到的那些之外,有没有可能的解决方案?
我有模特财产:
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)
我有简单的测试模型:
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