小编Ron*_*ton的帖子

是否存在实体框架7数据库优先POCO生成器?

我一直在玩Entity Framework 7和ASP.NET 5来处理我正在开发的新项目,但我遇到了障碍.我正在研究的团队使用DBA优先的方法进行开发; 即数据库由DBA设计,然后开发人员更改代码以补偿模型更改.

使用EF6,这很有效,因为我们可以使用EDMX设计器的"更新"功能更新代码.点击一下,我们就可以获得新课程了,我们已经完成了.但是,在EF7中,一切都不同.没有更多的设计师,我们应该使用Code-First,根据EF团队的一些博客文章,它也应该支持"数据库优先"代码生成.

但是,我无法弄清楚如何在ASP.NET 5应用程序中使用Visual Studio 2015 CTP6执行此操作.工具支持还没有,或者我运气不好?它甚至会出现吗?

c# sql-server entity-framework-core asp.net-core

54
推荐指数
3
解决办法
2万
查看次数

从未调用ASP.NET Web API自定义JsonConverter

所以这是我的情况.我正在WebForms应用程序中实现一个WEB API.我有一堆动态类,它们本质上是字典,需要使用自定义JSON序列化格式化程序才能正常工作(因为默认转换器只显示一堆键值配对).

所以首先我创建了一个自定义JSON转换器:

/// <summary>
/// A class to convert entities to JSON
/// </summary>
public class EntityJsonConverter : JsonConverter
{
    public override bool CanConvert(Type objectType)
    {
        return objectType.IsSubclassOf(typeof(Entity));
    }

    public override bool CanRead
    {
        get { return true; }
    }

    public override bool CanWrite
    {
        get { return true; }
    }

    public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
    {
        // Details not important. This code is called and works perfectly.
    }

    public override object ReadJson(JsonReader reader, Type …
Run Code Online (Sandbox Code Playgroud)

.net rest webforms json.net asp.net-web-api

11
推荐指数
1
解决办法
6707
查看次数

Simplemembership ASPXAUTH cookie在两个单独的Web项目上进行验证

我正在使用SimpleMembership开发一个ASP.NET MVC4项目,它在你登录时会生成一个ASPXAUTH cookie.它似乎工作得很好,但是今天我打开了另一个MVC4项目,只是注意到我已经登录了在.

这非常奇怪,因为新项目实际上没有在数据库中定义任何用户.更令人不安的是,当我点击新项目的"注销"时,它将我从原始网站中删除.

两个站点都在不同的端口上运行,但都在localhost上运行.当检查请求以查看它返回"IsAuthenticated == true"的原因时,我注意到ASPXAUTH cookie被发送到两个站点,并且调试器中cookie的"domain"参数为"null".这让我觉得可能cookie正在生成为"无域"cookie(我不知道这样的事情是否可能,说实话!),并查看了web.config设置以指定域名:

<authentication mode="Forms">
  <forms loginUrl="~/Account/Login" timeout="2880" domain="http://localhost:56626" />
</authentication>
Run Code Online (Sandbox Code Playgroud)

不幸的是,设置"domain"参数已使cookie停止工作.我已经尝试了所有排列(使用http,没有http,有端口,没有端口等),每次我指定一个域时,浏览器都会收到带有正确指定域名的cookie(我在Chrome开发者工具中检查过它),但随后无法将其发送回后续请求的服务器.

所以,我对这里发生的事情感到很困惑.这是否是由于未在某处正确设置某些内容而导致的安全漏洞?或者,ASPXAUTH cookie将在同一域上的两个不同端口上的两个完全不同的Web应用程序上授权用户,这是完全正常的行为吗?我会在网络主机上测试这个,但遗憾的是我现在无法访问运行MVC4的任何内容.

提前致谢.

asp.net-mvc forms-authentication .aspxauth asp.net-mvc-4 simplemembership

7
推荐指数
1
解决办法
2255
查看次数

使用Pomelo MySQL EF提供程序与ASP.NET Core 2.0 Preview的错误

我在ASP.NET Core 2.0 Preview上使用Pomelo 1.1.2以及EF 2.0 Preview.使用他们的演示代码,每次调用"UseMySql"时都会出现以下异常:

System.TypeLoadException occurred
  HResult=0x80131522
  Message=Method 'Clone' in type 'Microsoft.EntityFrameworkCore.Internal.MySqlOptionsExtension' from assembly 'Pomelo.EntityFrameworkCore.MySql, Version=1.1.1.0, Culture=neutral, PublicKeyToken=null' does not have an implementation.
  Source=<Cannot evaluate the exception source>
  StackTrace:
   at Microsoft.EntityFrameworkCore.MySqlDbContextOptionsExtensions.UseMySql(DbContextOptionsBuilder optionsBuilder, String connectionString, Action`1 mySqlOptionsAction)
   at CoreTest1.Startup.<ConfigureServices>b__4_0(DbContextOptionsBuilder options) in C:\DEV\Experiments\CoreTest1\CoreTest1\Startup.cs:line 27
   at Microsoft.Extensions.DependencyInjection.EntityFrameworkServiceCollectionExtensions.<>c__DisplayClass0_0`1.<AddDbContext>b__0(IServiceProvider p, DbContextOptionsBuilder b)
   at Microsoft.Extensions.DependencyInjection.EntityFrameworkServiceCollectionExtensions.DbContextOptionsFactory[TContext](IServiceProvider applicationServiceProvider, Action`2 optionsAction)
   at Microsoft.Extensions.DependencyInjection.EntityFrameworkServiceCollectionExtensions.<>c__DisplayClass5_0`1.<AddCoreServices>b__0(IServiceProvider p)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitFactoryService(FactoryService factoryService, ServiceProvider provider)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(IServiceCallSite callSite, TArgument argument)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitScoped(ScopedCallSite scopedCallSite, ServiceProvider provider)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitSingleton(SingletonCallSite singletonCallSite, ServiceProvider provider)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(IServiceCallSite …
Run Code Online (Sandbox Code Playgroud)

mysql pomelo entity-framework-core asp.net-core asp.net-core-2.0

7
推荐指数
1
解决办法
4010
查看次数

在不同模块中扩大 TypeScript 中的标记/歧视联合?

我有一个用于通过套接字连接来回传递 JSON 消息的系统。它使用标记联合来表示消息类型:

export type ErrorMessage = { kind: 'error', errorMessage: ErrorData };
export type UserJoined = { kind: 'user-joined', user: UserData };
// etc
export type Message = ErrorMessage | UserJoined | /*etc*/;
Run Code Online (Sandbox Code Playgroud)

它在基本代码中运行得相当好,但我在其之上构建了一个模块,我想扩展代码。我要添加一个新的消息类型:

export type UserAction = { kind: 'user-action', action: Action }
Run Code Online (Sandbox Code Playgroud)

这里的问题是我无法扩展“Message”以将我的新 UserAction 包含到联合中。我想我可以制作自己的扩展消息:

export type ExtendedMessage = Message | UserAction;
Run Code Online (Sandbox Code Playgroud)

但这里的问题是,第一,这看起来很笨拙。我无法将新的 UserAction 传递到任何需要消息的方法中,即使代码实际上应该完全正常工作。以后想要扩展我的模块和基本模块的任何人都需要创建第三种类型:export type ExtendedMessageAgain = ExtendedMessage | MyNewMessage

所以。我已经看到通过添加新的 .d.ts 文件来扩展附加属性的接口(例如 Passport 如何扩展 Express JS 的 Request 对象以添加身份验证属性),我认为标记联合也必须存在类似的东西,对吗?

但事实似乎并非如此。我用谷歌搜索了一下,没有看到这种模式在任何地方使用。这让我相信我的设计也许在某种程度上是错误的。但我没有看到解决办法。

我不想使用类,因为类型信息会通过网络被删除;该kind财产必须存在。我喜欢这个范例: …

strong-typing discriminated-union typescript

7
推荐指数
1
解决办法
1184
查看次数

UWP后台任务HttpClient在设备屏幕关闭时失败

我正在开发专为手机设计的UWP应用程序.它旨在与本地家庭网络上运行的服务器同步数据.此同步可能需要相当长的时间,因此后台任务不是同步数据的最佳位置; 它可能需要超过我分配的30秒.然而,这个想法是使用带有计时器触发器的后台任务; 它会调用服务器来检查是否有任何消息要消耗,然后弹出一个Toast通知,询问它是否可以在前台运行以执行同步.

如果屏幕打开,代码效果很好.但如果屏幕关闭,那我就不会收到任何通知.起初我以为timertrigger没有触发,但是每当它运行时我就会记录,并且确实足够,每隔15分钟按时运行一次.我深入研究它,它失败了.具体来说,它在网络呼叫上失败了; HttpClient.GetAsync,出现以下错误:

"The text associated with this error code could not be found.\r\n\r\nA connection with the server could not be established\r\n"
Run Code Online (Sandbox Code Playgroud)

现在我检查了服务器; 它正在运行.我打开屏幕,代码突然再次运行.我将触发器设置为仅在未计量连接可用时运行:

    var status = await BackgroundExecutionManager.RequestAccessAsync();
    if(status.In(BackgroundAccessStatus.DeniedBySystemPolicy, BackgroundAccessStatus.DeniedByUser))
    {
        return;
    }

    var builder = new BackgroundTaskBuilder();
    builder.Name = Constants.BackgroundTaskName;
    builder.SetTrigger(new TimeTrigger(15, false));
    builder.AddCondition(new SystemCondition(SystemConditionType.FreeNetworkAvailable));
    BackgroundTaskRegistration task = builder.Register();
Run Code Online (Sandbox Code Playgroud)

所以我认为只有当Wifi可用时才会触发定时器.但是当我实际使用此代码执行HTTP Get时:

    async protected override void OnBackgroundActivated(BackgroundActivatedEventArgs args)
    {
        if (BackgroundWorkCost.CurrentBackgroundWorkCost == BackgroundWorkCostValue.High)
            return;
        if (!NetworkInterface.GetIsNetworkAvailable())
            return;
        base.OnBackgroundActivated(args);
        if (args.TaskInstance.Task.Name == Constants.BackgroundTaskName)
        {
            var cancel …
Run Code Online (Sandbox Code Playgroud)

c# uwp windows-10-universal

6
推荐指数
1
解决办法
664
查看次数

Webpack 插件解析器找不到本地或模块函数调用

我正在编写一个代码分析 webpack 插件,它想在 webpack 包中查找函数名称的所有实例。

我为这个问题做了一个 repo:https : //github.com/RonPenton/webpack-parser-fail-demo

所以解析器真的很简单,就像这样:

    class ParsePlugin {
    apply(compiler) {
        compiler.plugin('compilation', function (compilation, data) {

            data.normalModuleFactory.plugin('parser', function (parser, options) {

                parser.plugin(`call $findme`, function (expr) {
                    console.log("found $findme!");
                });
            });
        });
    }
Run Code Online (Sandbox Code Playgroud)

https://github.com/RonPenton/webpack-parser-fail-demo/blob/master/parse.js

我想要做的就是在代码中找到 $findme() 的所有实例并记录有关它们的信息。稍后,我什至可能最终更改电话,但那是另一天。

当我提供这个源文件时,一切都很好:https : //github.com/RonPenton/webpack-parser-fail-demo/blob/master/good.js

$findme("Testing");
$findme("Testing too...");
Run Code Online (Sandbox Code Playgroud)

当我运行 webpack 时,输出显示找到了两个实例:

found $findme!
found $findme!
Hash: a6555af5036af17d9320
Version: webpack 3.6.0
Time: 69ms
  Asset     Size  Chunks             Chunk Names
good.js  2.52 kB       0  [emitted]  main
   [0] ./good.js 47 bytes {0} [built]
Run Code Online (Sandbox Code Playgroud)

但是当我使用不同的入口点时,函数是在本地( …

javascript parsing webpack webpack-plugin

5
推荐指数
1
解决办法
239
查看次数

SimpleMembership Provider不分配ID

我正在尝试使用SimpleMembership获取一个使用SQL的MVC4站点,但每当我创建用户记录时我都会遇到错误:

[SqlException (0x80131904): Cannot insert the value NULL into column 'Id', table 'NFBC.dbo.User'; column does not allow nulls. INSERT fails.
The statement has been terminated.]
   System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) +1753346
   System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) +5295154
   System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) +242
   System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady) +1682
   System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) +269
   System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite) …
Run Code Online (Sandbox Code Playgroud)

.net c# asp.net-mvc-4 simplemembership

3
推荐指数
1
解决办法
1684
查看次数

ASP.NET 5/MVC6中的VirtualPathProvider等价物?

我正在研究将ASP4/MVC4应用程序迁移到ASP5/MVC6的迁移策略.我们当前的实现依赖于将cshtml视图作为DLL的嵌入资源加载,我们使用VirtualPathProvider来查找这些cshtml文件.

不幸的是,HostingEnvironment.RegisterVirtualPathProvider似乎已经从MVC6中消失了.我能找到的最接近的是IEnvironment.WebRootFileProvider,它是一个IFileProvider.所以我编写了一个测试类来查看它是否可行,不幸的是,我编写的IFileProvider永远不会查询CSHTML文件.我收到所有.JS,.CSS等文件的请求,但没有.CSHTML的请求.

我在这里寻找的是能够挂钩剃刀引擎,并在请求视图时提供从嵌入式资源(或实际上,任何其他来源)加载的CSHTML文件.我应该在这看什么?

谢谢!

c# razor asp.net-core-mvc asp.net-core

3
推荐指数
1
解决办法
1558
查看次数