我在Visual Studio中收到此错误:
错误CS7003意外使用未绑定的通用名称MyProject C:\ Users [myname]\documents\visual studio 2015\Projects ....\Index.cshtml 1
违规文件就在这里(第1行错误是对模型声明的引用):
@model MyProject.Models.MyAccount.Details
@{
ViewBag.Title = "Index";
Layout = "~/Views/Shared/_PrimaryLayout.cshtml";
}
<!-- Page Content -->
<div class="container">
.... more page stuff follows from here
Run Code Online (Sandbox Code Playgroud)
模型类如下:
namespace MyProject.Models.MyAccount
{
public class Details
{
public static Details Select(Company c)
{
Details model = new Details();
model.SomeProperty = "SomeValue";
return model;
}
public String SomeProperty { get; set; }
}
}
Run Code Online (Sandbox Code Playgroud)
奇怪的是,清理不会让它消失,重建将它留在那里,我建立/调试就好了.
也许我错过了什么.我有一个"Geography"数据类型的SQL Server列.
我想在我的c#代码中使用DbGeography类型.有什么方法可以从sql的地理位置转换或转换为dbgeography吗?
DateTime是否在SQL Server评估的EF查询中运行,因为运行IL的机器会评估查询表达式之外的DateTime函数?
我有一个具有SalesOrders的应用程序
public class SalesOrder
{
public Int32 OrderID {get;set;}
public DateTime Expiration {get;set;}
}
Run Code Online (Sandbox Code Playgroud)
我运行EF查询并在执行此操作时获得不同的结果:
DateTime utcnow = DateTime.UtcNow;
var open = (from a in context.SalesOrders
where a.Expiration > utcnow
select a).ToList();
Run Code Online (Sandbox Code Playgroud)
比我这样做:
var open = (from a in context.SalesOrders
where a.Expiration > DateTime.UtcNow
select a).ToList();
Run Code Online (Sandbox Code Playgroud)
我认为这是因为实体框架查询中的DateTime.UtcNow由SQL Server评估,而DateTime.UtcNow在查询之外由运行IL的机器评估; 我基于这个答案.
我在Azure平台中作为服务,如果重要的话,使用Azure SQL DB在本地进行调试.
Core 2.0,使用AspnetCore.Identity.我创建了一些角色,包括"Admin".
//initializing custom roles
var RoleManager = serviceProvider.GetRequiredService<RoleManager<IdentityRole>>();
var UserManager = serviceProvider.GetRequiredService<UserManager<ApplicationUser>>();
string[] roleNames = { "Admin", "Training", "Operations", "Membership", "Individual" };
IdentityResult roleResult;
foreach (var roleName in roleNames)
{
var roleExist = await RoleManager.RoleExistsAsync(roleName);
// ensure that the role does not exist
if (!roleExist)
{
//create the roles and seed them to the database:
roleResult = await RoleManager.CreateAsync(new IdentityRole(roleName));
}
}
Run Code Online (Sandbox Code Playgroud)
我检查了SQL表,它们都在那里:
然后我将自己添加到Admin角色(不是完整方法,而是相关部分):
var UserManager = serviceProvider.GetRequiredService<UserManager<ApplicationUser>>();
var _eric = await UserManager.FindByEmailAsync("username@gmail.com");
await UserManager.AddToRoleAsync(_eric, "Admin");
Run Code Online (Sandbox Code Playgroud)
我检查了桌子,我在那里(和另一个我加入另一个角色的人):
然后我转到我的方法并使用两个角色授权它,其中一个我在(管理员):
[Authorize(Roles …
Run Code Online (Sandbox Code Playgroud) 我设置了.htaccess/.htpassword并且它工作正常,除非我输错密码它仍然会让我登录..如果我使用完全不同的密码,则无效.一个不同的用户名,它不起作用.
但是,如果我使用正确的用户名和大多数正确的密码,它有效吗?
例:
我使用的密码是"firefight","消防员"似乎有用."软管"不会.
任何线索?
问题:我需要在多表插入中获取一个标识,我需要在Entity Framework中包含它周围的事务支持.
我有两个(伪通用的)对象与对应的表,书和作者:
create table Author
(authorid int identity primary key,
authorname varchar(max)
)
create table Book
(bookid int identity primary key,
bookname varchar(max),
authorid int references Author(authorid)
)
Run Code Online (Sandbox Code Playgroud)
我的问题是,当我需要用新作者插入一本新书时,我最终需要做这样的事情,如果Book插入引发异常我有一个没有Book的作者,这对我的应用程序不利.
context.Authors.Add(newauthor);
context.SaveChanges();
newbook.AuthorID = newauthor.ID //I can read this now because the SaveChanges() created the ID
context.Books.Add(newbook);
context.SaveChanges();
Run Code Online (Sandbox Code Playgroud)
我浏览了这篇文章,基本上说不使用与EntityFramework的事务,并建议每次操作调用一次SaveChanges()并让EF自己处理事务.我很乐意,但我需要首先从表中获取身份,如我的伪代码中所示和这个问题
我有一个带整数的域/实体对象:
public Int32 HoursToWait {get;set;}
Run Code Online (Sandbox Code Playgroud)
我在视图模型中添加了相同的东西:
public Int32 HoursToWait {get;set;}
<select id="HoursToWait" name="HoursToWait">
<option value="1">1</option>
<option value="6">6</option>
<option value="12" selected="selected">12</option>
<option value="12">24</option>
<option value="12">36</option>
<option value="12">48</option>
<option value="12">72</option>
</select>
Run Code Online (Sandbox Code Playgroud)
问题的关键是我的实体模型是一个整数.我想将其显示为下拉列表,仅允许选择某些小时.并且,一旦被选中,我想在下次显示时将其默认.
上面的代码"有效",但它的硬编码默认为12所以它是老生常的,如果用户更改HoursToWait值,重新加载时它只会返回到12.
所以主要问题是我应该使用哪种视图模型属性和剃刀元素来处理这个问题?
我正在使用 .Net Core 2.0,并在创建网站时选择了“个人用户帐户”。我可以注册/登录/注销,并且可以在数据库中查看声明、登录、角色和用户的表。
然后我安装了 Microsoft.AspnetCore.Identity nuget 包,它似乎没有为我已有的内容添加任何内容。
我希望这些包有一个用户界面组件。基本上,我是否需要构建所有 UI 管理 CRUD 操作,或者我可以以某种方式将其现成吗?
我正在运行一个简单的LINQ查询:
var user = (from u in context.Users
where u.Email == dictionary["email"]
select u).FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)
当我运行它时,我得到这个例外:
LINQ to Entities无法识别方法'System.String get_Item(System.String)'方法,并且此方法无法转换为商店表达式.
如果我使用这个中间步骤,它工作正常.
String myDictionaryItem = dictionary["email"];
var user = (from u in context.Users
where u.Email == myDictionaryItem
select u).FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)
看起来有点奇怪.Net无法想得更快一点.
(免责声明:可能是一些拼写错误,我更改了一些变量名称)
我正在开发一个性能相当高的应用程序,我知道数据库连接通常是更昂贵的操作之一.我有一个经常运行的任务,并且在业务过程中它必须从Table1和Table2中选择数据.我有两个选择:
像我一样继续制作两个实体框架查询.从Table1中选择并从linq查询中的Table2中选择.(我现在正在做什么).
创建了一个存储过程,该过程使用多个结果集在一个查询中返回两个结果集.
我想象SQL Server的成本是相同的:正在执行相同的IO.我很好奇是否有人能说出在毫秒重要的"热"代码路径中可能存在的性能冲击.
Startup.cs,锅炉板:
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
Run Code Online (Sandbox Code Playgroud)
我有一个控制器类,MembersController.
[Produces("application/json")]
[Route("api/Members")]
public class MembersController : Controller
{
[HttpGet("{email},{password}")]
[Route("api/members/authenticate/")]
public async void Authenticate(String email, String password)
{
///the method that won't fire
}
// GET: api/Members/5
[HttpGet("{id}")]
public async Task<IActionResult> GetMember([FromRoute] int id)
{
///the boiler plate method that gets called
}
}
Run Code Online (Sandbox Code Playgroud)
基本上我试图添加一个方法,Authenticate
我拿a username
和password
.我设置了一个路由和一些HTTPGet参数.但无论我多么惹它(前往http://localhost:64880/api/members/authenticate/
,作为一个例子),我无法得到我添加的Authenticate方法来调用.
我想这是一个路由的事情?
c# ×7
linq ×3
asp.net-core ×2
security ×2
sql-server ×2
.htaccess ×1
apache ×1
azure ×1
c#-4.0 ×1
datetime ×1
geospatial ×1
gis ×1
html5 ×1
identity ×1
performance ×1
razor ×1
spatial ×1
sql ×1
transactions ×1
where-clause ×1