hi
The tenantid
set in the base class.
You can call the YouEntityHelper.TrySetTenantId(this);
This breaks the framework design and may cause uncertainty in related functions.
public abstract class Entity : IEntity
{
protected Entity()
{
EntityHelper.TrySetTenantId(this);
}
}
public static class YourEntityHelper
{
public static void TrySetTenantId(IEntity entity)
{
//if (entity is not IMultiTenant multiTenantEntity)
//{
// return;
//}
//make sure entity is contains `TenantIdCustom`
var tenantId = AsyncLocalCurrentTenantAccessor.Instance.Current?.TenantId;
if (tenantId == multiTenantEntity.TenantIdCustom)
{
return;
}
ObjectHelper.TrySetProperty(
multiTenantEntity,
x => x.TenantIdCustom,
() => tenantId
);
}
}
Noted on that. As I still need some filtering by TenantId, A possible workaround for me is to add TenantId without implementing IMultiTenant.
You can override the ef core filter method. https://abp.io/docs/latest/framework/infrastructure/data-filtering?_redirected=B8ABF606AA1BDF5C629883DF1061649A#entityframework-core
Is there any way to automatically populate this TenantId field with the CurrentTenant?
The entity's TenantId
has nothing to do with ICurrentTenant
ICurrentTenant
value coming from claims.
ok, I will do some checks and reply to you soon.
Thanks
ok, I will add an id
to the logout
element.
hi
If your entity has implemented the IMultiTenant
there is no way to achieve this.
hi vd
Can you create a new question? Our angular team will reply to you. THanks
hi
You need Test
your connection string first.
xxxx.;Database=Tenant-A; TrustServerCertificate=True
OR
xxxx.;Database=Tenant-A; Encrypt=False
hi
I don't recommend that you do this.
The IMultiTenant
is used in frameworks everywhere.
hi
TrustServerCertificate=True
Encrypt=False
https://learn.microsoft.com/en-us/ef/core/what-is-new/ef-core-7.0/breaking-changes?tabs=v7#mitigations