小编KDa*_*ani的帖子

EF Core 过滤器枚举使用 LIKE 运算符存储为字符串

我有一个Person带有枚举属性的模型Gender,它作为字符串存储在数据库中。我想进行查询以按性别的子字符串过滤数据。例如,如果query.SearchLike"Fe""em",我想找回所有女性。不幸的是,下面的代码抛出异常。

builder.Entity<Person>().Property(x => x.Gender).HasConversion<string>();
Run Code Online (Sandbox Code Playgroud)
public async Task<IList<Person>> ListAsync(PersonsQuery query)
{
  IQueryable<Person> queryable = _context.Persons.AsNoTracking();

  return await queryable
    .Where(x => x.Gender.ToString().Contains(query.SearchLike))
    .ToListAsync();
}
Run Code Online (Sandbox Code Playgroud)

例外:

无法翻译 LINQ 表达式 'DbSet\r\n .Where(x => x.Gender.ToString().Contains(__query_SearchLike_0))'。以可翻译的形式重写查询,或者通过插入对 AsEnumerable()、AsAsyncEnumerable()、ToList() 或 ToListAsync() 的调用来显式切换到客户端计算。有关详细信息,请参阅https://go.microsoft.com/fwlink/?linkid=2101038 。

c# entity-framework-core .net-core ef-core-3.1

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

如何使用.Net Core验证KeyCloak提供的JWT?

我有一个 ASP.Net Core 5 资源服务器,我想验证我的访问令牌,但尚未成功。

我编写了一个中间件以更好地处理错误:

var token = context.Request.Headers["Authorization"].FirstOrDefault()?.Split(" ").Last();
var tokenHandler = new JwtSecurityTokenHandler();
var key = Encoding.ASCII.GetBytes(_configuration["Jwt:Kid"]); // Kid is copied from 'openid-connect/certs'

tokenHandler.ValidateToken(token, new TokenValidationParameters
{
    ValidIssuer = _configuration["Jwt:Issuer"],
    IssuerSigningKey = new SymmetricSecurityKey(key),
    ValidateAudience = false,
    ValidateIssuer = true,
    ValidateIssuerSigningKey = true,
    ValidateLifetime = false
}, out SecurityToken validatedToken);
Run Code Online (Sandbox Code Playgroud)

我的 KeyCloak 的钥匙已打开*/auth/realms/test/protocol/openid-connect/certs

{
  "keys": [
    {
      "kid": "O9cbi7dzidpxZGLV2eXlTvIECoKDB_YbUN2m73rp8",
      "kty": "RSA",
      "alg": "RS256",
      "use": "sig",
      "n": "qMaFN3tmQ0TaGWaWcanebanGDgh_bz7RzlTbbkiGtY707x...hF40ofv1Fxoy7hBUEKARUqCgjltj5_0TtWn850Eqak41lpa-P_PNsGdwBf18mqBCT8pFbzs8DeRZaD1Q",
      "e": "AQAB",
      "x5c": [
        "MIIClzCCAX8CBgF3jSSr9TANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDDAR0ZXN0MB4XDTIxMDIxMDE4MTAyNloXDTMxMDIxMDE4MTIwNlowDzENMAsGA1UEAwwEdGVzdDCCASIwDQYJKoZI...8tUe5h/7rg1+bHAGVbWg=="
      ],
      "x5t": "G5NYmhm8yEwqHtyLwygxGw89A", …
Run Code Online (Sandbox Code Playgroud)

c# authentication jwt keycloak asp.net-core

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

vue修改父组件中的v-data-table列项模板

我正在使用Vuetify并制作了一个包含v-data-table. 如何更改父组件中的表格列模板?

子组件示例:

<template>
  <v-card>
    <v-data-table :items="items" :headers="headers">
      <!-- ???????? -->
    </v-data-table>
  </v-card>
</template>

<script>
export default {
  name: "ChildComponent",
  props: {
    items: Array,
    headers: Array,
  },
};
</script>
Run Code Online (Sandbox Code Playgroud)

父组件:

item.id只是一个例子,我需要一个适用于任何类型的对象字段的通用解决方案。

<template>
  <ChildComponent :items="items" :headers="headers">
    <template v-slot:item.id="{ item }">
      <v-chip> {{ item.id }} </v-chip>
    </template>
  </ChildComponent>
</template>

<script>
import ChildComponent from "./ChildComponent";

export default {
  components: {
    ChildComponent,
  },
  data: () => ({
    items: [/* ... */],
    headers: [/* ... */],
  }),
};
</script> …
Run Code Online (Sandbox Code Playgroud)

vue.js vue-component

2
推荐指数
1
解决办法
2826
查看次数