我正在使用Entity Framework 6和Code-First方法,我希望将两个实体放在同一个表中.我究竟做错了什么?
[Table("Review")]
public class Review
{
public int Id { get; set; }
public PictureInfo PictureInfo { get; set; }
public int PictureInfoId { get; set; }
}
[Table("Review")]
public class PictureInfo
{
[Key, ForeignKey("Review")]
public int ReviewId { get; set; }
public Review Review { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我得到的错误:实体类型'PictureInfo'和'Review'不能共享表'Review',因为它们不在同一类型层次结构中,或者没有有效的一对一外键关系,它们之间具有匹配的主键.
我究竟做错了什么?
所以我有一个User对象集合,它应该是可批量编辑的(同时编辑许多用户).我正在使用Entity Framework将用户输入保存到数据库.
控制器方法从表单获取的集合为null.为什么?另外,BindAttribute是否可以与我的代码中的集合一起使用?
@model IEnumerable<Domain.User>
@using (Html.BeginForm("UpdateUsers", "Users"))
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
foreach (var item in Model)
{
@Html.HiddenFor(modelItem => item.Id)
@Html.EditorFor(modelItem => item.FirstName)
@Html.ValidationMessageFor(model => item.FirstName)
@Html.EditorFor(modelItem => item.LastName)
@Html.ValidationMessageFor(model => item.LastName)
@Html.EditorFor(modelItem => item.Birth)
@Html.ValidationMessageFor(model => item.Birth)
}
<input type="submit" value="Update user data"/>
}
Run Code Online (Sandbox Code Playgroud)
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult UpdateUsers([Bind(Include = "Id,FirstName,LastName,Birth")] IEnumerable<User> users)
{
if (ModelState.IsValid)
{
foreach (User u in users)
{
db.Entry(u).State = EntityState.Modified;
}
db.SaveChanges();
}
return RedirectToAction("EditUsers");
}
Run Code Online (Sandbox Code Playgroud) 我正在使用WPF创建一个多语言应用程序.我正在使用静态资源,存储在.resx/res文件中的字符串使文本出现在用户的文化中.
这是项目目录结构的一部分:
在.csproj中,我有: <UICulture>en-US</UICulture>
在AssemblyInfo.cs中: [assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
编译后,我可以看到资源文件出现:
所以我绑定到GreetingWindow.xaml中的静态字符串资源:
<windows:MyWindowBase x:Class="CommanderDotNET.MyApp.Windows.GreetingWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:windows="clr-namespace:MyApp.Windows"
xmlns:res="clr-namespace:MyApp.Resources">
<Label Content="{x:Static res:GreetingWindowRes.FirstGreetingText}" />
</windows:MyWindowBase>
Run Code Online (Sandbox Code Playgroud)
结果令我感到困惑:
找不到适合指定文化或中性文化的资源.确保在编译时将"MyApp.Resources.GreetingWindowRes.en-US.resources"正确嵌入或链接到程序集"MyApp"中,或者所有所需的附属程序集都是可加载和完全签名的.
我究竟做错了什么?
经过大量的搜索,我在这里找到了一个很好的解释:http: //www.west-wind.com/weblog/posts/2009/Jun/04/Resx-and-BAML-Resources-in-WPF
显然,当使用UltimateResourceFallbackLocation.Satellite+时<UICulture>,您需要同时拥有ResxResource.resx和GreetingWindowRes.en-US.resx文件作为主要语言(讨厌的重复).
但是,如果您只想使用Resx资源,而没有BAML本地化,那么这不是可行的方法,而且情况要好得多.仅使用Resx资源的正确方法:
[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.MainAssembly)]<UICulture>我正在使用带有响应图像的Bootstrap.我想通过向浏览器提供多种图像大小来优化加载时间.根据这篇文章,像这样的srcset的简单方法有利于让浏览器选择最佳图像大小:
<img src="small.jpg" srcset="medium.jpg 1000w, large.jpg 2000w" alt="yah">
Run Code Online (Sandbox Code Playgroud)
我的问题是将它与Bootstrap img-responsive类相结合,即使只需要一个小的图片,也会加载一个大尺寸的图片.
这里的代码示例:Bootply.使用Chrome进行测试,它内置支持srcset支持!(其他一些浏览器需要picturefill.js来识别它.)
如果您复制图像的来源(或在"网络"选项卡中查看Chrome开发者工具),您可以看到750宽度版本被加载,并调整为小图像,即使有较小的版本是最佳的使用.(如果加载picturefill JS来支持img srcset,那么在IE和Firefox中也会发生同样的事情.)
我究竟做错了什么?
我想重定向index.php到home在这个片段。
<system.webServer>
<rewrite>
<rules>
<rule name="Redirect index.php to home" stopProcessing="true">
<match url="index.php" ignoreCase="false" />
<action type="Redirect" url="home" redirectType="Permanent" />
</rule>
</rules>
</rewrite>
</system.webServer>
Run Code Online (Sandbox Code Playgroud)
我正在运行IIS Express 8.5。对于http://localhost/index.php,没有重定向发生,我得到的是index.php和相同的旧404。试图删除浏览器缓存没有帮助。任何的想法?
我无需执行任何操作即可启用Url-Rewrite-Module,对吗?
c# ×3
asp.net-mvc ×2
iis ×1
iis-express ×1
localization ×1
picturefill ×1
resx ×1
srcset ×1
web-config ×1
wpf ×1
xaml ×1