codeFirst,如果没有配置SugarTable,不能生成数据表(索引的{table}占位符也依赖特性) 返回

SqlSugar 沟通中
40 595
该叫什么 fry 发布于2025/8/19
悬赏:0 飞吻

QQ图片20250819162541.png

热忱回答40

  • fry fry VIP0
    2025/8/19

    如果不配置SugarTable特性,可以用模型名称来替换

    如果一开始没有配置,后面又加上了SugarTable特性,可以按照这个里面的名称来设置表名称和索引

    0 回复
  • fate sta fate sta VIP0
    2025/8/19

    看文档实体配置


    EntityServiceName 事件可以全局配置索引

    0 回复
  • fry fry VIP0
    2025/8/19

    全局设置也依赖于SqlTable特性,否则CodeFirst无法生成



    0 回复
  • fate sta fate sta VIP0
    2025/8/19

    @fry:可以完全不用sugartable特性

    0 回复
  • fry fry VIP0
    2025/8/19

    我的测试如下:

    1:如果未标记sugartable特性,则该模型无法进入EntityService事件

    2:如果标记sugartable特性,设置EntityService事件统一修改表名称,服务会报错

    0 回复
  • fate sta fate sta VIP0
    2025/8/19

    如果未标记sugartable特性,则该模型无法进入EntityServiceName事件

    肯定会进EntityServiceName

    0 回复
  • fate sta fate sta VIP0
    2025/8/19

    你说的第一条就不成立

    0 回复
  • fate sta fate sta VIP0
    2025/8/19

    有疑问写2个属性的空DEMO自测,有疑问发DEMO

    0 回复
  • fry fry VIP0
    2025/8/19

    EntityServiceName这个没找到

    0 回复
  • fry fry VIP0
    2025/8/19

    @fate sta:打错了

    0 回复
  • fry fry VIP0
    2025/8/19

    wechat_2025-08-19_172341_733.png

    0 回复
  • fry fry VIP0
    2025/8/19

    wechat_2025-08-19_173442_019.png

    0 回复
  • fate sta fate sta VIP0
    2025/8/19

    你把逻辑修改一下就行了。。这个逻辑又不是固定的

    0 回复
  • fate sta fate sta VIP0
    2025/8/19

    这个是你自个写的逻辑 , 按你的需求去写

    0 回复
  • fry fry VIP0
    2025/8/19

    关键是没有标记SugarTable的模型进不来,处理不了

    0 回复
  • fate sta fate sta VIP0
    2025/8/19

    image.png



    这个逻辑不是你自个加的吗,删了不就进来了吗?

    0 回复
  • fate sta fate sta VIP0
    2025/8/19

    建议你建一个空的DEMO,写个类玩一下。

    第一次使用实体不管你是不是有特性都会进来

    0 回复
  • fry fry VIP0
    2025/8/19

    @fate sta:删掉sugartable,就无法进入entitynameservice这个事件里了

    0 回复
  • fate sta fate sta VIP0
    2025/8/19

    @fry:建议你写个DEMO学习一下。100%可以的,有疑问 提供DEMO

    0 回复
  • fate sta fate sta VIP0
    2025/8/19

    大概率是 你用的是别人写好的成品 代码。 别人在CodeFirst地方 获取实体程序集的地方过滤掉了 

    0 回复
  • fry fry VIP0
    2025/8/20

    @fate sta:好的,我查查看

    0 回复
  • fry fry VIP0
    2025/8/20

    @fate sta:不是别人的,是自己搭建的

    0 回复
  • fry fry VIP0
    2025/8/20

    @fate sta:没有过滤,程序启动生成库和表的时候,没有带SugarTable标记的实体会影响整个实体的生成(3个实体,两个带标记,一个未带标记,生成库是可以的,表一个都没有)

    0 回复
  • fate sta fate sta VIP0
    2025/8/20

    @fry:有疑问提供DEMO, 100%是可以的。这个不用怀疑。

    0 回复
  • fate sta fate sta VIP0
    2025/8/20

    db.CodeFirst.InitTable(typeof(未标记的类)); 打个断点就行了

    0 回复
  • fate sta fate sta VIP0
    2025/8/20

    一个DEMO也就2分钟。你自个写个DEMO就知道了。

    0 回复
  • fry fry VIP0
    2025/8/20
    0 回复
  • fate sta fate sta VIP0
    2025/8/20

    image.png


    你打断点测试过吗? 明明进断点了

    0 回复
  • fate sta fate sta VIP0
    2025/8/20

    还有表名中不要有前缀 。abc.这个删掉。如果要多库建表。看文档:多租户

    0 回复
  • fry fry VIP0
    2025/8/20

    @fate sta:测试过,是要统一加前缀这个需求

    0 回复
  • fate sta fate sta VIP0
    2025/8/20

    @fry:那还有什么问题吗?能进断点的。你的问题是什么?

    0 回复
  • fate sta fate sta VIP0
    2025/8/20

    能进断点就不需要特性只要改 NameService里面的对象就行了。

    0 回复
  • fate sta fate sta VIP0
    2025/8/20

    我上面的截图已经进了断点。 

    0 回复
  • fry fry VIP0
    2025/8/20

    @fate sta:我测试也进断点,未标记特性,统一加表前缀会有异常,我现在的需求是:不管加不加SugarTable特性,统一加表名称前缀都要可以,且不出现异常

    0 回复
  • fate sta fate sta VIP0
    2025/8/20

    @fry:前缀是什么东西?库名还是什么  。还是说 这个表名里面就有 xxx.

    0 回复
  • fate sta fate sta VIP0
    2025/8/20

    如果是库名看文档:多租户 ,sqlsugar是通过多租户实现多库操作

    0 回复
  • fate sta fate sta VIP0
    2025/8/20

    表名存在 【.】会报错要改成 【_】, mysql不存在schema这个东西目前应该没有用.的地方

    0 回复
  • fate sta fate sta VIP0
    2025/8/20

    如果表名加前缀改成 abc. 改成  abc_ 不要用.

    0 回复
  • fry fry VIP0
    2025/8/21

    @fate sta:ok,,我再试试


    0 回复
  • fry fry VIP0
    2025/8/21

    @fate sta:这个问题解决了

    0 回复