小编Joa*_*oas的帖子

Laravel 删除belongsToMany 关系中的所有belongsToMany 关系

我有一个 Tournament 模型,其中包含与 Session 模型的belongsToMany 关系:

class Tournament extends Model{

    public function sessions(){
        return $this->belongsToMany(Session::class, 'tournament_has_sessions');
    }
}
Run Code Online (Sandbox Code Playgroud)

然后我的会话模型包含与用户模型的belongsToMany 关系:

class Session extends Model{

    public function users(){
        return $this->belongsToMany(User::class, 'session_has_users');
    }

}
Run Code Online (Sandbox Code Playgroud)

现在,当我删除锦标赛时,我想用它删除 session_has_users 表中的所有会话和所有信息。

我试过了:

$tournament->sessions()->with('users')->delete(); -- < This
$tournament->sessions()->delete();
$tournament->users()->detach();
$tournament->delete();
Run Code Online (Sandbox Code Playgroud)

但它不起作用。session_has_users 表中的数据持久化

我意识到我可以做这样的事情:

DB::table('session_has_users')->whereIn('session_id', $this->sessions()->pluck('id'))->delete();
Run Code Online (Sandbox Code Playgroud)

但是有没有更有效/更方便(或者即使不是更有效的替代方法)来实现这一目标?

laravel eloquent laravel-5

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

集成测试C#WebAPI asp.NET Framework 4.6.1

我试图用C#为我的C#asp.NET Framework 4.6.1 WebAPI编写集成测试,其中包含简单的CRUD功能。

在使用Microsoft.AspNet.WebApi 5.2.4进行.NET Framework 4.6.1的自动化集成测试方面,我几乎没有发现文档。我只发现了相对较旧的文章和视频,它们涉及使用Xunit和Nunit对.NET Core进行集成测试,但是在尝试以某种方式使其在.NET Framework 4.6.1和WebApi 5.2.4上工作时遇到了许多兼容性问题。 。

我知道这个问题主要是基于观点的,但是对此我的任何帮助我将不胜感激。

如何为.NET Framework 4.6.1 Microsoft.AspNet.WebApi 5.2.4应用程序编写自动化测试?

  • 我可以使用哪些软件包?
  • 如何正确配置这些软件包?
  • 我应该如何使用这些软件包?

我目前不使用Owin托管应用程序,而是在Global.asax中调用我的配置,但是我可以创建一个解决方案配置,如果需要,可以使用Owin来构建项目。

c# asp.net asp.net-web-api

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

带有支持字段的必需 init 属性给出 null 警告 C# 11

具有设置支持字段的必需 init 属性仍然会给出空警告。

下面的代码给出了一个警告:

警告 CS8618 退出构造函数时,不可空字段“_name”必须包含非空值。考虑将该字段声明为可为空。

public class TestRequiredInit
{
    private readonly string _name;

    public required string Name
    {
        get => _name;
        init => _name = value;
    }
}
Run Code Online (Sandbox Code Playgroud)

字段可为空警告

我没有看到一种TestRequiredInit在不_name设置为非空值的情况下创建的方法。 尝试创建都会给出警告或错误的类的不同方法

这是 MSBuild / VS 中的错误,还是我遗漏了什么?

更新以防止人们推荐使用汽车属性

为了提出问题,我对上面的代码进行了一些简化。我希望能够向属性初始值设定项添加初始化逻辑。

public class TestRequiredInit
{
    private readonly string _name;

    public required string Name
    {
        get => _name;
        init
        {
            if (value.Length > 50)
            {
                throw new ArgumentException();
            }

            _name = value;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

.net c# c#-11.0

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

C# 原始套接字 ARP 回复

我是一名学生,想了解更多有关 C# 中的 ARP 和套接字的信息

为此,我尝试使用SocketC# 中的原始数据发送 ARP 请求和回复。

我已经在字节数组中手动​​重建了 ARP 回复,并且尝试使用该Socket.Send方法发送它。

static void Main(string[] args)
{
    // Create a raw socket
    var socket = new Socket(AddressFamily.InterNetwork, SocketType.Raw, ProtocolType.Raw);

    // Setup ARP headers
    byte[] buffer = new byte[]
    {
        0x34, 0x97, 0xf6, 0x22, 0x04, 0xe8, // Ethernet Destination mac
        0x70, 0x1c, 0xe7, 0x51, 0x94, 0x0b, // Ethernet source mac
        0x08, 0x06,                         // Type: ARP
        00, 0x01,                           // Hardware type: Ethernet
        0x08, 0x00,                         // Protocol type: IPv4 …
Run Code Online (Sandbox Code Playgroud)

c# arp

4
推荐指数
1
解决办法
1950
查看次数

在C#asp.net性能实践中使用静态自动映射器

预先,对于这个问题是否已经在其他地方得到解答,我深表歉意。但是我在这件事上发现了很多不同的结果。

我正在使用:

  • .net Framework 4.6.1
  • Microsoft.AspNet.Mvc 5.2.6
  • AutoMapper 6.2.2
  • 实体框架6.2.0

我对ASP.net和C#都是陌生的,最近我成为了AutoMapper软件包的粉丝。我主要是使用它来将我的实体转换ApplicationDbContextDTO的(数据传输对象)或ViewModel

现在,我在应用程序中使用此设置进行初始化并在Mapper中使用Controller

Global.asax.cs

public class MvcApplication : System.Web.HttpApplication
{
    protected void Application_Start()
    {
        Mapper.Initialize(AutoMapperConfiguration.Configure);

        // Other configuration for MVC application...
    }
}
Run Code Online (Sandbox Code Playgroud)

AutoMapperConfiguration.cs

public static class AutoMapperConfiguration
{
    public static void Configure(IMapperConfigurationExpression config)
    {
        config.CreateMap<Post, Post.DetailsViewModel>().ForMember(post => post.CanEdit, cfg => cfg.ResolveUsing((src, dst, arg3, context) => context.Options.Items["UserId"]?.ToString() == src.UserId));
    }
}
Run Code Online (Sandbox Code Playgroud)

PostsController.cs和Post.cs

public class PostsController : Controller
{
    private ApplicationDbContext db …
Run Code Online (Sandbox Code Playgroud)

c# asp.net asp.net-mvc entity-framework automapper

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