UPD 这里是我解决问题的方式.虽然它可能不是最好的,但它对我有用.
我在使用EF Core时遇到问题.我想通过模式机制将项目数据库中不同公司的数据分开.我的问题是如何在运行时更改模式名称?我已经找到了关于这个问题的类似问题,但它仍然是答案,我有一些不同的条件.所以我有Resolve方法在必要时授予db-context
public static void Resolve(IServiceCollection services) {
services.AddIdentity<ApplicationUser, IdentityRole>()
.AddEntityFrameworkStores<DomainDbContext>()
.AddDefaultTokenProviders();
services.AddTransient<IOrderProvider, OrderProvider>();
...
}
Run Code Online (Sandbox Code Playgroud)
我可以设置schema-name OnModelCreating,但是,如前所述,这个方法只调用一次,所以我可以在这里设置模式名称globaly
protected override void OnModelCreating(ModelBuilder modelBuilder) {
modelBuilder.HasDefaultSchema("public");
base.OnModelCreating(modelBuilder);
}
Run Code Online (Sandbox Code Playgroud)
或者通过类似的属性在模型中
[Table("order", Schema = "public")]
public class Order{...}
Run Code Online (Sandbox Code Playgroud)
但是如何在运行时更改模式名称?我根据每个请求创建了ef的上下文,但首先我通过请求为数据库中的某个模式共享表格查找了用户的模式名称.那么组织该机制的真正方法是什么:
谢谢.
PS我使用PostgreSql,这是表名低的原因.
c# entity-framework database-schema entity-framework-core asp.net-core
我在寻找淘汰赛,如果还是可见的最佳做法,在这种情况下:
<div data-bind="visible: $root.obsVar()">
...
<input type="text" data-bind="value: $root.obsVar().someField" />
...
</div>
Run Code Online (Sandbox Code Playgroud)
如果$root.obsVar()未定义,将抛出错误.如果更改visible到if,问题会错过,但它需要的HTML重写.如果有很多murkup div,则需要花费很多时间.是否有任何理由改变$root.obsVar().someField对$root.getSomeFieldValue总是返回正确的值或未定义?或者也许还有其他技术不会增加开销并避免错误.
我在VisualStudio中使用knockout开发Web应用程序.我刚刚通过bower安装了淘汰赛,包括项目中的d.ts文件,包含脚本到html页面,现在我可以访问了ko.
现在我尝试使用moment.js.与淘汰赛一样:安装,包括d.ts,包括脚本到页面,我收到一个错误cannot find name 'moment'.添加对d.ts的引用没有帮助,import * as moment from 'moment'得到一个错误can not find module moment.
我知道这是一个愚蠢的问题,但我无法解决它.我究竟做错了什么?
欢迎Angular 2 rc.3!
我用project.json从5闵快速入门配置我的项目,但是当我跑npm install我得到遵循错误:
No compatible version found: @angular/router-deprecated@2.0.0-rc.3
Valid install targets:
2.0.0-rc.2, 2.0.0-rc.1, 2.0.0-rc.0, 0.0.0-7, 0.0.0-6
Run Code Online (Sandbox Code Playgroud)
有谁知道这是什么原因?也许quickstart doc过时了?
我将Entity Framework 7与Npgsql适配器一起使用。EF生成的SQL看起来像
SELECT "r"."Id", "r"."Name" FROM "public"."Role" AS "r"
Run Code Online (Sandbox Code Playgroud)
而且它在Postgres中不起作用,因为区分大小写的策略。为了使其正常工作,我需要编写创建表脚本
CREATE TABLE "Role" (
"Id" int,
"Name" varchar(200)
);
Run Code Online (Sandbox Code Playgroud)
但这很丑。有没有办法让EF生成不带引号或小写命名样式的脚本?
我有一个带有区域的 ASP MVC 项目,我必须将异常记录到数据库中。但我有一个问题。我必须将每个区域的日志异常写入数据库中自己的表。我有一个想法DataTargets为所有CommandText与表名相关的区域进行配置,但它看起来很丑陋。一种更奇妙的方法是通过一些工厂启动应用程序的所有区域并构建目标。
有人对此问题有任何想法或最佳做法吗?
在文件系统中成功上传了图像,我希望能够访问它.所以,我写了一些GET方法
[HttpGet]
public ActionResult Get(string id) {
var path = $@"d:\smth\upload\{id}.jpeg";
return File(path, "image/jpeg");
}
Run Code Online (Sandbox Code Playgroud)
我完全确定所需路径中的文件具有必需的名称,但无论何时尝试创建File(path, "image/jpeg")我都会获得Could no find file异常.好像我没有访问外面的文件夹wwwroot.也许我错过了使用静态文件文章的重要内容?
那么,有没有人可以解释如何通过GET-method 返回存储在web-server文件夹外的文件系统中的图像
c# ×4
asp.net-core ×2
angular ×1
asp.net-mvc ×1
database ×1
javascript ×1
knockout.js ×1
logging ×1
module ×1
momentjs ×1
nlog ×1
npgsql ×1
npm ×1
optimization ×1
postgresql ×1
typescript ×1