小编Tri*_*ner的帖子

我如何调用SQLitePCL.Batteries.Init().?

我正在尝试为我的应用程序创建一个SQLite数据库,并遇到了这个错误.

System.Exception:'您需要调用SQLitePCL.raw.SetProvider().如果您正在使用捆绑包,则可以通过调用SQLitePCL.Batteries.Init()来完成.

我创建了一个简单的控制台应用程序,运行完全相同的代码进行创建,没有任何问题.代码看起来像这样!

using (var dataContext = new SampleDBContext())
{
    dataContext.Accounts.Add(new Account() { AccountName = name, AccountBalance = balance });
}


public class SampleDBContext : DbContext
{
    private static bool _created = false;
    public SampleDBContext()
    {
        if (!_created)
        {
            _created = true;
            Database.EnsureDeleted();
            Database.EnsureCreated();
        }
    }
    protected override void OnConfiguring(DbContextOptionsBuilder optionbuilder)
    {
        optionbuilder.UseSqlite(@"Data Source="Source folder"\Database.db");
    }

    public DbSet<Account> Accounts { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

任何人都可以解释这个问题吗?我在两个项目上安装了相同的Nuget Packages,两者之间的唯一区别是数据源和我用于数据库的POCO类.

谢谢.

编辑 我的程序目前包含一个Console application引用a的程序.Net Framework Class Library.在Console application简单的有一个构造函数如下: …

c# sqlite entity-framework

18
推荐指数
5
解决办法
6105
查看次数

如何将Firebase onAuthStateChange与新的React Hooks一起使用?

我正在使用Firebase我的应用程序对用户进行身份验证。我已经创建了SignInSignUp表单,并且可以成功创建新用户并使用存储的用户登录。但是,问题出在维护用户之后,保持用户登录状态Reload

我在教程中看到的方式是使用HOC类似以下内容的命令检查当前用户是否已登录。

const withAuthentication = Component => {
  class WithAuthentication extends React.Component {
    constructor(props) {
      super(props);

      this.state = {
        authUser: null,
      };
    }

    componentDidMount() {
      this.listener = this.props.firebase.auth.onAuthStateChanged(
        authUser => {
          authUser
            ? this.setState({ authUser })
            : this.setState({ authUser: null });
        },
      );
    }

    componentWillUnmount() {
      this.listener();
    }

    render() {
    return (
      <AuthUserContext.Provider value={this.state.authUser}>
        <Component {...this.props} />
      </AuthUserContext.Provider>
      );
    }
  }

  return withFirebase(WithAuthentication);
};

export default withAuthentication;
Run Code Online (Sandbox Code Playgroud)

但是,我希望使用新版React Hooks …

firebase reactjs firebase-authentication react-hooks

8
推荐指数
1
解决办法
848
查看次数

如何在 vscode 中访问tasks.json 中的.env 变量?

我正在尝试tasks.jsonvscode.

在我的launch.json文件中,我有以下代码来解析 .env 文件:

"configurations": [
  {
    ...
    "envFile": "${workspaceFolder}/.env",
  }
]
Run Code Online (Sandbox Code Playgroud)

然后我在文件中包含tasks.json此任务:

{
  "label": "login",
  "command": "sh",
  "type": "shell",
  "args": [
    "${workspaceFolder}/etc/login.sh",
    "${env:USERNAME}",
    "${env:PASSWORD}"
  ]
}
Run Code Online (Sandbox Code Playgroud)

这似乎是https://code.visualstudio.com/docs/editor/tasks隐含的代码,但是(通过在另一个任务中回显进行测试)我发现最后两个args是空白的。经过在线研究后,我想我找到了原因,它们configurations..env是由它们tasks自己使用的,而不是由task.json运行访问的,因此无法访问。

我如何env variables在 中创建(使用)这些tasks.json

c# environment-variables visual-studio-code vscode-tasks

8
推荐指数
1
解决办法
5679
查看次数

如何在 GraphQL HotChocolate 中实现订阅?

我正在实现HotChocolate作为我的 ASP.NET API 的一部分。我正在尝试向我的应用程序的聊天部分添加订阅,但是,HotChocolate 站点上的文档尚未实现。从我从其他站点/框架中得知的情况来看,我可以使用 C#IObservable<Chat>作为订阅方法的返回类型。

谁能给我一个查询方法的例子或指向另一个资源?

public async Task<IObservable<Message>> GetMessages(Guid chatId) {
  var messages = ..Get chats;

  return messages;
}
Run Code Online (Sandbox Code Playgroud)

但是,从查询的角度来看,这是如何工作的?我们如何触发一个事件来更新它?

谢谢。

c# graphql hotchocolate

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

在实体框架中,什么时候应该使用 FirstOrDefaultAsync 或 FirstOrDefault?

我在 ASP.NET Web API 中使用实体框架。在查询方法中,我可以选择使用标准 LINQ 方法FirstOrDefault()或 EF 方法FirstOrDefaultAsync()。什么时候使用其中一种或另一种是正确的?

据我所知使用:

var users = context.Users.FirstOrDefault(user => user.id == Id);
Run Code Online (Sandbox Code Playgroud)

var users = await context.Users.FirstOrDefaultAsync(user => user.id == Id);
Run Code Online (Sandbox Code Playgroud)

两者都会暂停正在运行的线程直到调用返回吗?该方法的唯一优点Async是它可以Awaited在一个Async方法中。但是,如果该方法也正在等待那么它就无关紧要了?除了你肯定会触发另一个线程被创建?

public async Task MethodOneAsync() {
  await MethodTwoAsync();
}

public async Task MethodTwoAsync() {
  await context.Users.FirstOrDefaultAsync(..);
  ...
}
Run Code Online (Sandbox Code Playgroud)

这与执行以下操作相同吗:

public async void MethodOneAsync() {
  MethodTwo();
  ... await something else to 'please' the async nature, or remove async all together ...
}

public …
Run Code Online (Sandbox Code Playgroud)

c# entity-framework async-await

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