使用Database first设计并使用tinyint(或smallint)列:
[MyEnumColumn] [tinyint] NOT NULL
Run Code Online (Sandbox Code Playgroud)
我在EDM中将此列映射到枚举类型
External Type: NSpace.MyEnumType
Name:MyEnumType
UnderlyingType:Byte
Run Code Online (Sandbox Code Playgroud)
NSpace.MyEnumType的定义如下:
public enum MyEnumType
{ One, Two, Three, All }
Run Code Online (Sandbox Code Playgroud)
仅在尝试从上下文加载实体时出现此错误:
指定的架构无效.错误:
对于概念类型"EntityDataModel.MyEnumType",找不到对应的对象层类型.
以下信息可能有助于解决以前的错误:
CLR枚举类型的基础类型与EDM枚举类型的基础类型不匹配.
如果我使用[Smallint]和[Int16]同样适用,但是一旦我将数据库更改为[Int]并将枚举类型更改为[Int32],错误就消失了.
当99.9%的时间内的枚举不超过256个项目或者我错过了其他内容时,为什么我需要将枚举值存储在4Byte(Int)数据字段而不是1Byte(Tinyint)中?
Nestjs 非常方便地提供了开箱即用的 DI 容器,但随着项目变得越来越复杂,很容易丢失所有依赖项及其顺序的全貌。
问题:有没有办法以可以放入树/图中的方式获取所有依赖项(模块、提供程序、控制器...)的列表?我确信 Nestjs 在内部跟踪这些信息,我想知道访问它的最佳方式是什么。
(我找到了[ nestjs-dependency-graph],但它手动扫描模块以获取元数据,没有找到所有依赖项,并且往往会进入无限循环)
我想知道我是否可以在列中使用EXISTS(或类似的东西),如下所示:
SELECT Column1,
Column2,
EXISTS (SELECT 1 FROM Table2 T2 WHERE T2.Column = T1.Column) AS IsFlag
FROM Table1
Run Code Online (Sandbox Code Playgroud)
我知道我可以用Count()做类似的事情
SELECT Column1,
Column2,
(SELECT Count(*) FROM Table2 T2 WHERE T2.Column = T1.Column) AS IsFlag
FROM Table1
Run Code Online (Sandbox Code Playgroud)
但是当Table2很大时,这可能不是很有效
我认为Redux具有很大的价值,但是对我来说,主要问题在于当今的reducer的编写方式:
const addToDoReducer = (state, action) => {
switch (action.type) {
case ADD_TODO:
return Object.assign({}, state, {
todos: todos(state.todos, action)
})
case TOGGLE_TODO:
return Object.assign({}, state, {
todos: todos(state.todos, action)
})
default:
return state
}
}
Run Code Online (Sandbox Code Playgroud)
...最终,减速器成为项目的薄弱环节
问:有没有更好的方法/选项来编写reducer:
像这样:
const addToDoReducer = (state:toDoState, action:addAction) =>
{
return { ...state, toDos: [...state.toDos, action.toDoObject] };
}
Run Code Online (Sandbox Code Playgroud)
还是已经有这样做的图书馆?
exists ×1
nestjs ×1
react-redux ×1
reactjs ×1
redux ×1
sql-server ×1
sqldatatypes ×1
t-sql ×1
typescript ×1