我的数据库中有一个多对多关系设置,如下所示:
User
-------
Id (PK, Identity)
First
Last
...various other fields
Skill
-------
Id (PK, Identity)
Description
UserSkill
-----------
UserId (PK, FK on User.Id)
SkillId (PK, FK On Skill.Id)
Run Code Online (Sandbox Code Playgroud)
当我在 DbContext 上运行此 LINQ 查询时:
from u in Users
from s in u.Skills
where s.Id == 5
select new
{
u.Id,
s.Description
})
Run Code Online (Sandbox Code Playgroud)
生成的 SQL 包含所有内部联接,这就是我想要的:
SELECT
[Extent1].[UserId] AS [UserId],
[Extent2].[Description] AS [Description]
FROM [dbo].[UserSkill] AS [Extent1]
INNER JOIN [dbo].[Skill] AS [Extent2] ON [Extent1].[SkillId] = [Extent2].[Id]
WHERE 5 = [Extent2].[Id]
Run Code Online (Sandbox Code Playgroud)
但是,当我添加一个简单的额外 …
c# linq linq-to-entities linq-query-syntax entity-framework-5
我正在尝试使用以下方法删除仅针对特定控制器操作的“X-Frame-Options”标头:
protected override void OnResultExecuting(ResultExecutingContext filterContext)
{
filterContext.HttpContext.Response.Headers.Remove("X-Frame-Options");
base.OnResultExecuting(filterContext);
}
Run Code Online (Sandbox Code Playgroud)
然而,这似乎根本不起作用。我可以让它在我的网站上正常工作的唯一方法是将此代码添加到下面的 global.asax 中。我很确定我在 ASP.NET MVC / IIS 管道中缺少正确的步骤,该步骤允许我覆盖该标头的 IIS 设置。这可能吗?
protected void Application_EndRequest()
{
Response.Headers.Remove("X-Frame-Options");
}
Run Code Online (Sandbox Code Playgroud)
至于我为什么要这样做,我正在构建一个小部件,用户可以通过使用 iframe 在他们的个人网站上使用该小部件,但允许他们将信息发回我们的网站。我意识到关闭此标头会带来安全隐患,虽然我欢迎任何有关如何减轻这些风险的建议,但我只是想知道我所要求的是否可行。
根据autofixture cheatsheet,我应该能够以连续的方式自动生成数字(1,2,3等).
我正在使用最新版本(3.34.0)并使用与备忘单显示完全相同的代码,并且不断获取随机数,而不是1,2,3等.我错过了什么吗?作弊表是否过时了?
我的代码:
var fixture = new Fixture();
int i = fixture.Create<int>();
Run Code Online (Sandbox Code Playgroud)
编辑:
谢谢托马斯 - 我在github上添加了一个问题:
在我开始学习DDD的尝试中,我开始使用一个简单的域模型,随着时间的推移,我会逐渐建立起来.我在这个实例中的域是通常的订单>订单项目,以便保持简单,并能够稍后添加发票等.这是我到目前为止:
public class Order
{
private readonly IList<OrderItem> _orderItems;
public Guid Id { get; private set; }
public bool Completed { get; private set; }
public DateTime Created { get; private set; }
public IEnumerable<OrderItem> OrderItems
{
get { return _orderItems; }
}
public Order()
{
Id = new Guid();
Created = DateTime.UtcNow;
_orderItems = new List<OrderItem>();
}
public void AddOrderItem(int quantity, int unitCost)
{
var orderItem = new OrderItem(quantity, unitCost);
_orderItems.Add(orderItem);
}
public void CompleteOrder()
{
Completed = true; …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用JQuery和ASP.NET创建一个简单的ajax聊天.我的代码是这样的:
我在超时开始时从一开始就收到堆栈溢出错误,我不确定是什么原因引起的?它可以缓存吗?也许messages.aspx中的代码无法在5秒内完成运行?任何帮助,将不胜感激!
另外,我不担心sql注入攻击但b/c我只是试图让它使用简单的代码.
这是我的代码:
客户端:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
<script src="jquery.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function() {
refreshChat();
$("#btnSend").click(function() {
addMessage();
});
return false;
});
function refreshChat()
{
$.get("messages.aspx", function(data) {
$("#chatbox").empty();
$("#chatbox").prepend(data);
});
setTimeout(refreshChat(), 5000);
}
function addMessage()
{
$.get("messages.aspx", {usr: $("#usr").val(), msg: $("#msg").val()} );
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div id="input">
username: <input type="text" name="usr" id="usr" …Run Code Online (Sandbox Code Playgroud) 我正在使用该Microsoft.Owin.Testing库集成测试我的API在内存中.我已经在OWIN JWT中间件中添加了我的身份验证需求,现在我正在尝试传递生成的令牌来测试需要授权的控制器的请求.我可以向您保证JWT中间件设置正确,因为它在正常使用时工作得很好.但是,我正在观察TestServer.HttpClient对象的一些奇怪行为.当我在HttpClient上设置默认授权头以传递令牌时,我的测试永远不会通过,因为无法识别令牌.但是,当我使用时TestServer.CreateRequest(...),测试正确传递并识别令牌.我更喜欢使用HttpClient方法,因为它们使用所提供的所有扩展方法使事情变得简单得多PostAsJsonAsync,等等.我开始认为在TestServer.HttpClient我或者我有一个完全缺少某些东西的错误.
这是我的测试类(使用NUnit3):
public class DefinitionsControllerTests
{
private TestServer _server;
private string _accessToken;
[SetUp]
public void Setup()
{
_server = TestServer.Create<Startup>();
var credentials = new FormUrlEncodedContent(new[] {
new KeyValuePair<string, string>("grant_type", "password"),
new KeyValuePair<string, string>("username", "john.doe@mail.com"),
new KeyValuePair<string, string>("password", "testing123")
});
// get token from OWIN JWT middleware
dynamic resultBody = JObject.Parse(
_server.HttpClient.PostAsync("/oauth/token", credentials).Result.Content.ReadAsStringAsync().Result);
_accessToken = (string)resultBody.access_token;
// this does not appear to ever work
_server.HttpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", _accessToken);
} …Run Code Online (Sandbox Code Playgroud)